Line data Source code
1 1 : var EXPECTED_OUTPUT =
2 1 : 'stretch tree of depth 10\t check: -1\n' +
3 1 : '1448\t trees of depth 4\t check: -1448\n' +
4 1 : '362\t trees of depth 6\t check: -362\n' +
5 1 : '90\t trees of depth 8\t check: -90\n' +
6 1 : 'long lived tree of depth 9\t check: -1\n';
7 1 : var Module = {
8 1 : arguments: [1],
9 5 : print: function(x) {Module.printBuffer += x + '\n';},
10 1 : preRun: [function() {Module.printBuffer = ''}],
11 1 : postRun: [function() {
12 1 : assertEquals(EXPECTED_OUTPUT, Module.printBuffer);
13 1 : }],
14 1 : };
15 1 :
16 1 : var Module;
17 1 : if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
18 1 : if (!Module.expectedDataFileDownloads) {
19 1 : Module.expectedDataFileDownloads = 0;
20 1 : Module.finishedDataFileDownloads = 0;
21 1 : }
22 1 : Module.expectedDataFileDownloads++;
23 1 : (function() {
24 1 :
25 1 : function runWithFS() {
26 1 :
27 1 : function assert(check, msg) {
28 0 : if (!check) throw msg + new Error().stack;
29 1 : }
30 1 : Module['FS_createDataFile']('/', 'binarytrees.lua', [45, 45, 32, 84, 104, 101, 32, 67, 111, 109, 112, 117, 116, 101, 114, 32, 76, 97, 110, 103, 117, 97, 103, 101, 32, 66, 101, 110, 99, 104, 109, 97, 114, 107, 115, 32, 71, 97, 109, 101, 10, 45, 45, 32, 104, 116, 116, 112, 58, 47, 47, 98, 101, 110, 99, 104, 109, 97, 114, 107, 115, 103, 97, 109, 101, 46, 97, 108, 105, 111, 116, 104, 46, 100, 101, 98, 105, 97, 110, 46, 111, 114, 103, 47, 10, 45, 45, 32, 99, 111, 110, 116, 114, 105, 98, 117, 116, 101, 100, 32, 98, 121, 32, 77, 105, 107, 101, 32, 80, 97, 108, 108, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 116, 101, 109, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 102, 32, 100, 101, 112, 116, 104, 32, 62, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 105, 32, 61, 32, 105, 116, 101, 109, 32, 43, 32, 105, 116, 101, 109, 10, 32, 32, 32, 32, 100, 101, 112, 116, 104, 32, 61, 32, 100, 101, 112, 116, 104, 32, 45, 32, 49, 10, 32, 32, 32, 32, 108, 111, 99, 97, 108, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 44, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 105, 44, 32, 100, 101, 112, 116, 104, 41, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 44, 32, 108, 101, 102, 116, 44, 32, 114, 105, 103, 104, 116, 32, 125, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 123, 32, 105, 116, 101, 109, 32, 125, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 102, 117, 110, 99, 116, 105, 111, 110, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 41, 10, 32, 32, 105, 102, 32, 116, 114, 101, 101, 91, 50, 93, 32, 116, 104, 101, 110, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 50, 93, 41, 32, 45, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 116, 114, 101, 101, 91, 51, 93, 41, 10, 32, 32, 101, 108, 115, 101, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32, 116, 114, 101, 101, 91, 49, 93, 10, 32, 32, 101, 110, 100, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 78, 32, 61, 32, 116, 111, 110, 117, 109, 98, 101, 114, 40, 97, 114, 103, 32, 97, 110, 100, 32, 97, 114, 103, 91, 49, 93, 41, 32, 111, 114, 32, 52, 10, 10, 105, 102, 32, 78, 32, 61, 61, 32, 48, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 48, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 49, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 57, 46, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 50, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 49, 46, 57, 57, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 51, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 50, 46, 56, 53, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 52, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 52, 46, 55, 50, 10, 101, 108, 115, 101, 105, 102, 32, 78, 32, 61, 61, 32, 53, 32, 116, 104, 101, 110, 10, 32, 32, 78, 32, 61, 32, 49, 53, 46, 56, 50, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 61, 32, 52, 10, 108, 111, 99, 97, 108, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 109, 105, 110, 100, 101, 112, 116, 104, 32, 43, 32, 50, 10, 105, 102, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 60, 32, 78, 32, 116, 104, 101, 110, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 61, 32, 78, 32, 101, 110, 100, 10, 10, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 32, 61, 32, 109, 97, 120, 100, 101, 112, 116, 104, 32, 43, 32, 49, 10, 32, 32, 108, 111, 99, 97, 108, 32, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 41, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 115, 116, 114, 101, 116, 99, 104, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 115, 116, 114, 101, 116, 99, 104, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 115, 116, 114, 101, 116, 99, 104, 116, 114, 101, 101, 41, 41, 41, 10, 101, 110, 100, 10, 10, 108, 111, 99, 97, 108, 32, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 32, 61, 32, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 48, 44, 32, 109, 97, 120, 100, 101, 112, 116, 104, 41, 10, 10, 102, 111, 114, 32, 100, 101, 112, 116, 104, 61, 109, 105, 110, 100, 101, 112, 116, 104, 44, 109, 97, 120, 100, 101, 112, 116, 104, 44, 50, 32, 100, 111, 10, 32, 32, 108, 111, 99, 97, 108, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 61, 32, 50, 32, 94, 32, 40, 109, 97, 120, 100, 101, 112, 116, 104, 32, 45, 32, 100, 101, 112, 116, 104, 32, 43, 32, 109, 105, 110, 100, 101, 112, 116, 104, 41, 10, 32, 32, 108, 111, 99, 97, 108, 32, 99, 104, 101, 99, 107, 32, 61, 32, 48, 10, 32, 32, 102, 111, 114, 32, 105, 61, 49, 44, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 32, 100, 111, 10, 32, 32, 32, 32, 99, 104, 101, 99, 107, 32, 61, 32, 99, 104, 101, 99, 107, 32, 43, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 32, 43, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 66, 111, 116, 116, 111, 109, 85, 112, 84, 114, 101, 101, 40, 45, 49, 44, 32, 100, 101, 112, 116, 104, 41, 41, 10, 32, 32, 101, 110, 100, 10, 32, 32, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 37, 100, 92, 116, 32, 116, 114, 101, 101, 115, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 32, 32, 105, 116, 101, 114, 97, 116, 105, 111, 110, 115, 42, 50, 44, 32, 100, 101, 112, 116, 104, 44, 32, 99, 104, 101, 99, 107, 41, 41, 10, 101, 110, 100, 10, 10, 105, 111, 46, 119, 114, 105, 116, 101, 40, 115, 116, 114, 105, 110, 103, 46, 102, 111, 114, 109, 97, 116, 40, 34, 108, 111, 110, 103, 32, 108, 105, 118, 101, 100, 32, 116, 114, 101, 101, 32, 111, 102, 32, 100, 101, 112, 116, 104, 32, 37, 100, 92, 116, 32, 99, 104, 101, 99, 107, 58, 32, 37, 100, 92, 110, 34, 44, 10, 32, 32, 109, 97, 120, 100, 101, 112, 116, 104, 44, 32, 73, 116, 101, 109, 67, 104, 101, 99, 107, 40, 108, 111, 110, 103, 108, 105, 118, 101, 100, 116, 114, 101, 101, 41, 41, 41, 10], true, true);
31 1 :
32 1 : }
33 1 : if (Module['calledRun']) {
34 1 : runWithFS();
35 1 : } else {
36 1 : if (!Module['preRun']) Module['preRun'] = [];
37 1 : Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
38 1 : }
39 1 :
40 1 : })();
41 1 :
42 1 : // The Module object: Our interface to the outside world. We import
43 1 : // and export values on it, and do the work to get that through
44 1 : // closure compiler if necessary. There are various ways Module can be used:
45 1 : // 1. Not defined. We create it here
46 1 : // 2. A function parameter, function(Module) { ..generated code.. }
47 1 : // 3. pre-run appended it, var Module = {}; ..generated code..
48 1 : // 4. External script tag defines var Module.
49 1 : // We need to do an eval in order to handle the closure compiler
50 1 : // case, where this code here is minified but Module was defined
51 1 : // elsewhere (e.g. case 4 above). We also need to check if Module
52 1 : // already exists (e.g. case 3 above).
53 1 : // Note that if you want to run closure, and also to use Module
54 1 : // after the generated code, you will need to define var Module = {};
55 1 : // before the code. Then that object will be used in the code, and you
56 1 : // can continue to use Module afterwards as well.
57 1 : var Module;
58 1 : if (!Module) Module = (typeof Module !== 'undefined' ? Module : null) || {};
59 1 :
60 1 : // Sometimes an existing Module object exists with properties
61 1 : // meant to overwrite the default module functionality. Here
62 1 : // we collect those properties and reapply _after_ we configure
63 1 : // the current environment's defaults to avoid having to be so
64 1 : // defensive during initialization.
65 1 : var moduleOverrides = {};
66 1 : for (var key in Module) {
67 1 : if (Module.hasOwnProperty(key)) {
68 1 : moduleOverrides[key] = Module[key];
69 1 : }
70 1 : }
71 1 :
72 1 : // The environment setup code below is customized to use Module.
73 1 : // *** Environment setup code ***
74 1 : var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function';
75 1 : var ENVIRONMENT_IS_WEB = typeof window === 'object';
76 1 : var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';
77 1 : var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;
78 1 :
79 1 : if (ENVIRONMENT_IS_NODE) {
80 1 : // Expose functionality in the same simple way that the shells work
81 1 : // Note that we pollute the global namespace here, otherwise we break in node
82 1 : if (!Module['print']) Module['print'] = function print(x) {
83 0 : process['stdout'].write(x + '\n');
84 1 : };
85 1 : if (!Module['printErr']) Module['printErr'] = function printErr(x) {
86 0 : process['stderr'].write(x + '\n');
87 1 : };
88 1 :
89 1 : var nodeFS = require('fs');
90 1 : var nodePath = require('path');
91 1 :
92 1 : Module['read'] = function read(filename, binary) {
93 0 : filename = nodePath['normalize'](filename);
94 0 : var ret = nodeFS['readFileSync'](filename);
95 0 : // The path is absolute if the normalized version is the same as the resolved.
96 0 : if (!ret && filename != nodePath['resolve'](filename)) {
97 0 : filename = path.join(__dirname, '..', 'src', filename);
98 0 : ret = nodeFS['readFileSync'](filename);
99 0 : }
100 0 : if (ret && !binary) ret = ret.toString();
101 0 : return ret;
102 1 : };
103 1 :
104 1 : Module['readBinary'] = function readBinary(filename) { return Module['read'](filename, true) };
105 1 :
106 1 : Module['load'] = function load(f) {
107 0 : globalEval(read(f));
108 1 : };
109 1 :
110 1 : Module['arguments'] = process['argv'].slice(2);
111 1 :
112 1 : module['exports'] = Module;
113 1 : }
114 1 : else if (ENVIRONMENT_IS_SHELL) {
115 1 : if (!Module['print']) Module['print'] = print;
116 1 : if (typeof printErr != 'undefined') Module['printErr'] = printErr; // not present in v8 or older sm
117 1 :
118 1 : if (typeof read != 'undefined') {
119 1 : Module['read'] = read;
120 1 : } else {
121 1 : Module['read'] = function read() { throw 'no read() available (jsc?)' };
122 1 : }
123 1 :
124 1 : Module['readBinary'] = function readBinary(f) {
125 0 : return read(f, 'binary');
126 1 : };
127 1 :
128 1 : if (typeof scriptArgs != 'undefined') {
129 1 : Module['arguments'] = scriptArgs;
130 1 : } else if (typeof arguments != 'undefined') {
131 1 : Module['arguments'] = arguments;
132 1 : }
133 1 :
134 1 : this['Module'] = Module;
135 1 :
136 1 : eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined"); // wipe out the SpiderMonkey shell 'gc' function, which can confuse closure (uses it as a minified name, and it is then initted to a non-falsey value unexpectedly)
137 1 : }
138 1 : else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
139 1 : Module['read'] = function read(url) {
140 0 : var xhr = new XMLHttpRequest();
141 0 : xhr.open('GET', url, false);
142 0 : xhr.send(null);
143 0 : return xhr.responseText;
144 1 : };
145 1 :
146 1 : if (typeof arguments != 'undefined') {
147 1 : Module['arguments'] = arguments;
148 1 : }
149 1 :
150 1 : if (typeof console !== 'undefined') {
151 1 : if (!Module['print']) Module['print'] = function print(x) {
152 0 : console.log(x);
153 1 : };
154 1 : if (!Module['printErr']) Module['printErr'] = function printErr(x) {
155 0 : console.log(x);
156 1 : };
157 1 : } else {
158 1 : // Probably a worker, and without console.log. We can do very little here...
159 1 : var TRY_USE_DUMP = false;
160 1 : if (!Module['print']) Module['print'] = (TRY_USE_DUMP && (typeof(dump) !== "undefined") ? (function(x) {
161 0 : dump(x);
162 1 : }) : (function(x) {
163 0 : // self.postMessage(x); // enable this if you want stdout to be sent as messages
164 1 : }));
165 1 : }
166 1 :
167 1 : if (ENVIRONMENT_IS_WEB) {
168 1 : window['Module'] = Module;
169 1 : } else {
170 1 : Module['load'] = importScripts;
171 1 : }
172 1 : }
173 1 : else {
174 1 : // Unreachable because SHELL is dependant on the others
175 1 : throw 'Unknown runtime environment. Where are we?';
176 1 : }
177 1 :
178 1 : function globalEval(x) {
179 0 : eval.call(null, x);
180 1 : }
181 1 : if (!Module['load'] == 'undefined' && Module['read']) {
182 1 : Module['load'] = function load(f) {
183 0 : globalEval(Module['read'](f));
184 1 : };
185 1 : }
186 1 : if (!Module['print']) {
187 1 : Module['print'] = function(){};
188 1 : }
189 1 : if (!Module['printErr']) {
190 1 : Module['printErr'] = Module['print'];
191 1 : }
192 1 : if (!Module['arguments']) {
193 1 : Module['arguments'] = [];
194 1 : }
195 1 : // *** Environment setup code ***
196 1 :
197 1 : // Closure helpers
198 1 : Module.print = Module['print'];
199 1 : Module.printErr = Module['printErr'];
200 1 :
201 1 : // Callbacks
202 1 : Module['preRun'] = [];
203 1 : Module['postRun'] = [];
204 1 :
205 1 : // Merge back in the overrides
206 1 : for (var key in moduleOverrides) {
207 1 : if (moduleOverrides.hasOwnProperty(key)) {
208 1 : Module[key] = moduleOverrides[key];
209 1 : }
210 1 : }
211 1 :
212 1 :
213 1 :
214 1 : // === Auto-generated preamble library stuff ===
215 1 :
216 1 : //========================================
217 1 : // Runtime code shared with compiler
218 1 : //========================================
219 1 :
220 1 : var Runtime = {
221 1 : stackSave: function () {
222 0 : return STACKTOP;
223 1 : },
224 1 : stackRestore: function (stackTop) {
225 0 : STACKTOP = stackTop;
226 1 : },
227 1 : forceAlign: function (target, quantum) {
228 0 : quantum = quantum || 4;
229 0 : if (quantum == 1) return target;
230 0 : if (isNumber(target) && isNumber(quantum)) {
231 0 : return Math.ceil(target/quantum)*quantum;
232 0 : } else if (isNumber(quantum) && isPowerOfTwo(quantum)) {
233 0 : return '(((' +target + ')+' + (quantum-1) + ')&' + -quantum + ')';
234 0 : }
235 0 : return 'Math.ceil((' + target + ')/' + quantum + ')*' + quantum;
236 1 : },
237 1 : isNumberType: function (type) {
238 0 : return type in Runtime.INT_TYPES || type in Runtime.FLOAT_TYPES;
239 1 : },
240 1 : isPointerType: function isPointerType(type) {
241 0 : return type[type.length-1] == '*';
242 1 : },
243 1 : isStructType: function isStructType(type) {
244 0 : if (isPointerType(type)) return false;
245 0 : if (isArrayType(type)) return true;
246 0 : if (/<?\{ ?[^}]* ?\}>?/.test(type)) return true; // { i32, i8 } etc. - anonymous struct types
247 0 : // See comment in isStructPointerType()
248 0 : return type[0] == '%';
249 1 : },
250 1 : INT_TYPES: {"i1":0,"i8":0,"i16":0,"i32":0,"i64":0},
251 1 : FLOAT_TYPES: {"float":0,"double":0},
252 1 : or64: function (x, y) {
253 0 : var l = (x | 0) | (y | 0);
254 0 : var h = (Math.round(x / 4294967296) | Math.round(y / 4294967296)) * 4294967296;
255 0 : return l + h;
256 1 : },
257 1 : and64: function (x, y) {
258 0 : var l = (x | 0) & (y | 0);
259 0 : var h = (Math.round(x / 4294967296) & Math.round(y / 4294967296)) * 4294967296;
260 0 : return l + h;
261 1 : },
262 1 : xor64: function (x, y) {
263 0 : var l = (x | 0) ^ (y | 0);
264 0 : var h = (Math.round(x / 4294967296) ^ Math.round(y / 4294967296)) * 4294967296;
265 0 : return l + h;
266 1 : },
267 16 : getNativeTypeSize: function (type) {
268 16 : switch (type) {
269 16 : case 'i1': case 'i8': return 1;
270 16 : case 'i16': return 2;
271 16 : case 'i32': return 4;
272 16 : case 'i64': return 8;
273 16 : case 'float': return 4;
274 16 : case 'double': return 8;
275 16 : default: {
276 16 : if (type[type.length-1] === '*') {
277 16 : return Runtime.QUANTUM_SIZE; // A pointer
278 16 : } else if (type[0] === 'i') {
279 16 : var bits = parseInt(type.substr(1));
280 16 : assert(bits % 8 === 0);
281 16 : return bits/8;
282 16 : } else {
283 16 : return 0;
284 16 : }
285 16 : }
286 16 : }
287 16 : },
288 13 : getNativeFieldSize: function (type) {
289 13 : return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE);
290 13 : },
291 1 : dedup: function dedup(items, ident) {
292 0 : var seen = {};
293 0 : if (ident) {
294 0 : return items.filter(function(item) {
295 0 : if (seen[item[ident]]) return false;
296 0 : seen[item[ident]] = true;
297 0 : return true;
298 0 : });
299 0 : } else {
300 0 : return items.filter(function(item) {
301 0 : if (seen[item]) return false;
302 0 : seen[item] = true;
303 0 : return true;
304 0 : });
305 0 : }
306 1 : },
307 1 : set: function set() {
308 0 : var args = typeof arguments[0] === 'object' ? arguments[0] : arguments;
309 0 : var ret = {};
310 0 : for (var i = 0; i < args.length; i++) {
311 0 : ret[args[i]] = 0;
312 0 : }
313 0 : return ret;
314 1 : },
315 1 : STACK_ALIGN: 8,
316 1 : getAlignSize: function (type, size, vararg) {
317 0 : // we align i64s and doubles on 64-bit boundaries, unlike x86
318 0 : if (!vararg && (type == 'i64' || type == 'double')) return 8;
319 0 : if (!type) return Math.min(size, 8); // align structures internally to 64 bits
320 0 : return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE);
321 1 : },
322 1 : calculateStructAlignment: function calculateStructAlignment(type) {
323 0 : type.flatSize = 0;
324 0 : type.alignSize = 0;
325 0 : var diffs = [];
326 0 : var prev = -1;
327 0 : var index = 0;
328 0 : type.flatIndexes = type.fields.map(function(field) {
329 0 : index++;
330 0 : var size, alignSize;
331 0 : if (Runtime.isNumberType(field) || Runtime.isPointerType(field)) {
332 0 : size = Runtime.getNativeTypeSize(field); // pack char; char; in structs, also char[X]s.
333 0 : alignSize = Runtime.getAlignSize(field, size);
334 0 : } else if (Runtime.isStructType(field)) {
335 0 : if (field[1] === '0') {
336 0 : // this is [0 x something]. When inside another structure like here, it must be at the end,
337 0 : // and it adds no size
338 0 : // XXX this happens in java-nbody for example... assert(index === type.fields.length, 'zero-length in the middle!');
339 0 : size = 0;
340 0 : if (Types.types[field]) {
341 0 : alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
342 0 : } else {
343 0 : alignSize = type.alignSize || QUANTUM_SIZE;
344 0 : }
345 0 : } else {
346 0 : size = Types.types[field].flatSize;
347 0 : alignSize = Runtime.getAlignSize(null, Types.types[field].alignSize);
348 0 : }
349 0 : } else if (field[0] == 'b') {
350 0 : // bN, large number field, like a [N x i8]
351 0 : size = field.substr(1)|0;
352 0 : alignSize = 1;
353 0 : } else if (field[0] === '<') {
354 0 : // vector type
355 0 : size = alignSize = Types.types[field].flatSize; // fully aligned
356 0 : } else if (field[0] === 'i') {
357 0 : // illegal integer field, that could not be legalized because it is an internal structure field
358 0 : // it is ok to have such fields, if we just use them as markers of field size and nothing more complex
359 0 : size = alignSize = parseInt(field.substr(1))/8;
360 0 : assert(size % 1 === 0, 'cannot handle non-byte-size field ' + field);
361 0 : } else {
362 0 : assert(false, 'invalid type for calculateStructAlignment');
363 0 : }
364 0 : if (type.packed) alignSize = 1;
365 0 : type.alignSize = Math.max(type.alignSize, alignSize);
366 0 : var curr = Runtime.alignMemory(type.flatSize, alignSize); // if necessary, place this on aligned memory
367 0 : type.flatSize = curr + size;
368 0 : if (prev >= 0) {
369 0 : diffs.push(curr-prev);
370 0 : }
371 0 : prev = curr;
372 0 : return curr;
373 0 : });
374 0 : if (type.name_ && type.name_[0] === '[') {
375 0 : // arrays have 2 elements, so we get the proper difference. then we scale here. that way we avoid
376 0 : // allocating a potentially huge array for [999999 x i8] etc.
377 0 : type.flatSize = parseInt(type.name_.substr(1))*type.flatSize/2;
378 0 : }
379 0 : type.flatSize = Runtime.alignMemory(type.flatSize, type.alignSize);
380 0 : if (diffs.length == 0) {
381 0 : type.flatFactor = type.flatSize;
382 0 : } else if (Runtime.dedup(diffs).length == 1) {
383 0 : type.flatFactor = diffs[0];
384 0 : }
385 0 : type.needsFlattening = (type.flatFactor != 1);
386 0 : return type.flatIndexes;
387 1 : },
388 1 : generateStructInfo: function (struct, typeName, offset) {
389 0 : var type, alignment;
390 0 : if (typeName) {
391 0 : offset = offset || 0;
392 0 : type = (typeof Types === 'undefined' ? Runtime.typeInfo : Types.types)[typeName];
393 0 : if (!type) return null;
394 0 : if (type.fields.length != struct.length) {
395 0 : printErr('Number of named fields must match the type for ' + typeName + ': possibly duplicate struct names. Cannot return structInfo');
396 0 : return null;
397 0 : }
398 0 : alignment = type.flatIndexes;
399 0 : } else {
400 0 : var type = { fields: struct.map(function(item) { return item[0] }) };
401 0 : alignment = Runtime.calculateStructAlignment(type);
402 0 : }
403 0 : var ret = {
404 0 : __size__: type.flatSize
405 0 : };
406 0 : if (typeName) {
407 0 : struct.forEach(function(item, i) {
408 0 : if (typeof item === 'string') {
409 0 : ret[item] = alignment[i] + offset;
410 0 : } else {
411 0 : // embedded struct
412 0 : var key;
413 0 : for (var k in item) key = k;
414 0 : ret[key] = Runtime.generateStructInfo(item[key], type.fields[i], alignment[i]);
415 0 : }
416 0 : });
417 0 : } else {
418 0 : struct.forEach(function(item, i) {
419 0 : ret[item[1]] = alignment[i];
420 0 : });
421 0 : }
422 0 : return ret;
423 1 : },
424 1 : dynCall: function (sig, ptr, args) {
425 0 : if (args && args.length) {
426 0 : if (!args.splice) args = Array.prototype.slice.call(args);
427 0 : args.splice(0, 0, ptr);
428 0 : return Module['dynCall_' + sig].apply(null, args);
429 0 : } else {
430 0 : return Module['dynCall_' + sig].call(null, ptr);
431 0 : }
432 1 : },
433 1 : functionPointers: [],
434 1 : addFunction: function (func) {
435 0 : for (var i = 0; i < Runtime.functionPointers.length; i++) {
436 0 : if (!Runtime.functionPointers[i]) {
437 0 : Runtime.functionPointers[i] = func;
438 0 : return 2*(1 + i);
439 0 : }
440 0 : }
441 0 : throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';
442 1 : },
443 1 : removeFunction: function (index) {
444 0 : Runtime.functionPointers[(index-2)/2] = null;
445 1 : },
446 1 : getAsmConst: function (code, numArgs) {
447 0 : // code is a constant string on the heap, so we can cache these
448 0 : if (!Runtime.asmConstCache) Runtime.asmConstCache = {};
449 0 : var func = Runtime.asmConstCache[code];
450 0 : if (func) return func;
451 0 : var args = [];
452 0 : for (var i = 0; i < numArgs; i++) {
453 0 : args.push(String.fromCharCode(36) + i); // $0, $1 etc
454 0 : }
455 0 : var source = Pointer_stringify(code);
456 0 : if (source[0] === '"') {
457 0 : // tolerate EM_ASM("..code..") even though EM_ASM(..code..) is correct
458 0 : if (source.indexOf('"', 1) === source.length-1) {
459 0 : source = source.substr(1, source.length-2);
460 0 : } else {
461 0 : // something invalid happened, e.g. EM_ASM("..code($0)..", input)
462 0 : abort('invalid EM_ASM input |' + source + '|. Please use EM_ASM(..code..) (no quotes) or EM_ASM({ ..code($0).. }, input) (to input values)');
463 0 : }
464 0 : }
465 0 : try {
466 0 : var evalled = eval('(function(' + args.join(',') + '){ ' + source + ' })'); // new Function does not allow upvars in node
467 0 : } catch(e) {
468 0 : Module.printErr('error in executing inline EM_ASM code: ' + e + ' on: \n\n' + source + '\n\nwith args |' + args + '| (make sure to use the right one out of EM_ASM, EM_ASM_ARGS, etc.)');
469 0 : throw e;
470 0 : }
471 0 : return Runtime.asmConstCache[code] = evalled;
472 1 : },
473 1 : warnOnce: function (text) {
474 0 : if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {};
475 0 : if (!Runtime.warnOnce.shown[text]) {
476 0 : Runtime.warnOnce.shown[text] = 1;
477 0 : Module.printErr(text);
478 0 : }
479 1 : },
480 1 : funcWrappers: {},
481 1 : getFuncWrapper: function (func, sig) {
482 0 : assert(sig);
483 0 : if (!Runtime.funcWrappers[func]) {
484 0 : Runtime.funcWrappers[func] = function dynCall_wrapper() {
485 0 : return Runtime.dynCall(sig, func, arguments);
486 0 : };
487 0 : }
488 0 : return Runtime.funcWrappers[func];
489 1 : },
490 5 : UTF8Processor: function () {
491 5 : var buffer = [];
492 5 : var needed = 0;
493 174 : this.processCChar = function (code) {
494 174 : code = code & 0xFF;
495 174 :
496 174 : if (buffer.length == 0) {
497 174 : if ((code & 0x80) == 0x00) { // 0xxxxxxx
498 174 : return String.fromCharCode(code);
499 174 : }
500 174 : buffer.push(code);
501 174 : if ((code & 0xE0) == 0xC0) { // 110xxxxx
502 174 : needed = 1;
503 174 : } else if ((code & 0xF0) == 0xE0) { // 1110xxxx
504 174 : needed = 2;
505 174 : } else { // 11110xxx
506 174 : needed = 3;
507 174 : }
508 174 : return '';
509 174 : }
510 174 :
511 174 : if (needed) {
512 174 : buffer.push(code);
513 174 : needed--;
514 174 : if (needed > 0) return '';
515 174 : }
516 174 :
517 174 : var c1 = buffer[0];
518 174 : var c2 = buffer[1];
519 174 : var c3 = buffer[2];
520 174 : var c4 = buffer[3];
521 174 : var ret;
522 174 : if (buffer.length == 2) {
523 174 : ret = String.fromCharCode(((c1 & 0x1F) << 6) | (c2 & 0x3F));
524 174 : } else if (buffer.length == 3) {
525 174 : ret = String.fromCharCode(((c1 & 0x0F) << 12) | ((c2 & 0x3F) << 6) | (c3 & 0x3F));
526 174 : } else {
527 174 : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
528 174 : var codePoint = ((c1 & 0x07) << 18) | ((c2 & 0x3F) << 12) |
529 174 : ((c3 & 0x3F) << 6) | (c4 & 0x3F);
530 174 : ret = String.fromCharCode(
531 174 : Math.floor((codePoint - 0x10000) / 0x400) + 0xD800,
532 174 : (codePoint - 0x10000) % 0x400 + 0xDC00);
533 174 : }
534 174 : buffer.length = 0;
535 174 : return ret;
536 174 : }
537 5 : this.processJSString = function processJSString(string) {
538 4 : /* TODO: use TextEncoder when present,
539 4 : var encoder = new TextEncoder();
540 4 : encoder['encoding'] = "utf-8";
541 4 : var utf8Array = encoder['encode'](aMsg.data);
542 4 : */
543 4 : string = unescape(encodeURIComponent(string));
544 4 : var ret = [];
545 4 : for (var i = 0; i < string.length; i++) {
546 4 : ret.push(string.charCodeAt(i));
547 4 : }
548 4 : return ret;
549 5 : }
550 5 : },
551 1 : getCompilerSetting: function (name) {
552 0 : throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work';
553 1 : },
554 1 : stackAlloc: function (size) { var ret = STACKTOP;STACKTOP = (STACKTOP + size)|0;STACKTOP = (((STACKTOP)+7)&-8); return ret; },
555 16 : staticAlloc: function (size) { var ret = STATICTOP;STATICTOP = (STATICTOP + size)|0;STATICTOP = (((STATICTOP)+7)&-8); return ret; },
556 225 : dynamicAlloc: function (size) { var ret = DYNAMICTOP;DYNAMICTOP = (DYNAMICTOP + size)|0;DYNAMICTOP = (((DYNAMICTOP)+7)&-8); if (DYNAMICTOP >= TOTAL_MEMORY) enlargeMemory();; return ret; },
557 4 : alignMemory: function (size,quantum) { var ret = size = Math.ceil((size)/(quantum ? quantum : 8))*(quantum ? quantum : 8); return ret; },
558 1 : makeBigInt: function (low,high,unsigned) { var ret = (unsigned ? ((+((low>>>0)))+((+((high>>>0)))*(+4294967296))) : ((+((low>>>0)))+((+((high|0)))*(+4294967296)))); return ret; },
559 1 : GLOBAL_BASE: 8,
560 1 : QUANTUM_SIZE: 4,
561 1 : __dummy__: 0
562 1 : }
563 1 :
564 1 :
565 1 : Module['Runtime'] = Runtime;
566 1 :
567 1 :
568 1 :
569 1 :
570 1 :
571 1 :
572 1 :
573 1 :
574 1 :
575 1 : //========================================
576 1 : // Runtime essentials
577 1 : //========================================
578 1 :
579 1 : var __THREW__ = 0; // Used in checking for thrown exceptions.
580 1 :
581 1 : var ABORT = false; // whether we are quitting the application. no code should run after this. set in exit() and abort()
582 1 : var EXITSTATUS = 0;
583 1 :
584 1 : var undef = 0;
585 1 : // tempInt is used for 32-bit signed values or smaller. tempBigInt is used
586 1 : // for 32-bit unsigned values or more than 32 bits. TODO: audit all uses of tempInt
587 1 : var tempValue, tempInt, tempBigInt, tempInt2, tempBigInt2, tempPair, tempBigIntI, tempBigIntR, tempBigIntS, tempBigIntP, tempBigIntD, tempDouble, tempFloat;
588 1 : var tempI64, tempI64b;
589 1 : var tempRet0, tempRet1, tempRet2, tempRet3, tempRet4, tempRet5, tempRet6, tempRet7, tempRet8, tempRet9;
590 1 :
591 25 : function assert(condition, text) {
592 25 : if (!condition) {
593 25 : abort('Assertion failed: ' + text);
594 25 : }
595 25 : }
596 1 :
597 1 : var globalScope = this;
598 1 :
599 1 : // C calling interface. A convenient way to call C functions (in C files, or
600 1 : // defined with extern "C").
601 1 : //
602 1 : // Note: LLVM optimizations can inline and remove functions, after which you will not be
603 1 : // able to call them. Closure can also do so. To avoid that, add your function to
604 1 : // the exports using something like
605 1 : //
606 1 : // -s EXPORTED_FUNCTIONS='["_main", "_myfunc"]'
607 1 : //
608 1 : // @param ident The name of the C function (note that C++ functions will be name-mangled - use extern "C")
609 1 : // @param returnType The return type of the function, one of the JS types 'number', 'string' or 'array' (use 'number' for any C pointer, and
610 1 : // 'array' for JavaScript arrays and typed arrays; note that arrays are 8-bit).
611 1 : // @param argTypes An array of the types of arguments for the function (if there are no arguments, this can be ommitted). Types are as in returnType,
612 1 : // except that 'array' is not possible (there is no way for us to know the length of the array)
613 1 : // @param args An array of the arguments to the function, as native JS values (as in returnType)
614 1 : // Note that string arguments will be stored on the stack (the JS string will become a C string on the stack).
615 1 : // @return The return value, as a native JS value (as in returnType)
616 1 : function ccall(ident, returnType, argTypes, args) {
617 0 : return ccallFunc(getCFunc(ident), returnType, argTypes, args);
618 1 : }
619 1 : Module["ccall"] = ccall;
620 1 :
621 1 : // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)
622 1 : function getCFunc(ident) {
623 0 : try {
624 0 : var func = Module['_' + ident]; // closure exported function
625 0 : if (!func) func = eval('_' + ident); // explicit lookup
626 0 : } catch(e) {
627 0 : }
628 0 : assert(func, 'Cannot call unknown function ' + ident + ' (perhaps LLVM optimizations or closure removed it?)');
629 0 : return func;
630 1 : }
631 1 :
632 1 : // Internal function that does a C call using a function, not an identifier
633 1 : function ccallFunc(func, returnType, argTypes, args) {
634 0 : var stack = 0;
635 0 : function toC(value, type) {
636 0 : if (type == 'string') {
637 0 : if (value === null || value === undefined || value === 0) return 0; // null string
638 0 : value = intArrayFromString(value);
639 0 : type = 'array';
640 0 : }
641 0 : if (type == 'array') {
642 0 : if (!stack) stack = Runtime.stackSave();
643 0 : var ret = Runtime.stackAlloc(value.length);
644 0 : writeArrayToMemory(value, ret);
645 0 : return ret;
646 0 : }
647 0 : return value;
648 0 : }
649 0 : function fromC(value, type) {
650 0 : if (type == 'string') {
651 0 : return Pointer_stringify(value);
652 0 : }
653 0 : assert(type != 'array');
654 0 : return value;
655 0 : }
656 0 : var i = 0;
657 0 : var cArgs = args ? args.map(function(arg) {
658 0 : return toC(arg, argTypes[i++]);
659 0 : }) : [];
660 0 : var ret = fromC(func.apply(null, cArgs), returnType);
661 0 : if (stack) Runtime.stackRestore(stack);
662 0 : return ret;
663 1 : }
664 1 :
665 1 : // Returns a native JS wrapper for a C function. This is similar to ccall, but
666 1 : // returns a function you can call repeatedly in a normal way. For example:
667 1 : //
668 1 : // var my_function = cwrap('my_c_function', 'number', ['number', 'number']);
669 1 : // alert(my_function(5, 22));
670 1 : // alert(my_function(99, 12));
671 1 : //
672 1 : function cwrap(ident, returnType, argTypes) {
673 0 : var func = getCFunc(ident);
674 0 : return function() {
675 0 : return ccallFunc(func, returnType, argTypes, Array.prototype.slice.call(arguments));
676 0 : }
677 1 : }
678 1 : Module["cwrap"] = cwrap;
679 1 :
680 1 : // Sets a value in memory in a dynamic way at run-time. Uses the
681 1 : // type data. This is the same as makeSetValue, except that
682 1 : // makeSetValue is done at compile-time and generates the needed
683 1 : // code then, whereas this function picks the right code at
684 1 : // run-time.
685 1 : // Note that setValue and getValue only do *aligned* writes and reads!
686 1 : // Note that ccall uses JS types as for defining types, while setValue and
687 1 : // getValue need LLVM types ('i8', 'i32') - this is a lower-level operation
688 6 : function setValue(ptr, value, type, noSafe) {
689 6 : type = type || 'i8';
690 6 : if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
691 6 : switch(type) {
692 6 : case 'i1': HEAP8[(ptr)]=value; break;
693 6 : case 'i8': HEAP8[(ptr)]=value; break;
694 6 : case 'i16': HEAP16[((ptr)>>1)]=value; break;
695 6 : case 'i32': HEAP32[((ptr)>>2)]=value; break;
696 6 : case 'i64': (tempI64 = [value>>>0,(tempDouble=value,(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((ptr)>>2)]=tempI64[0],HEAP32[(((ptr)+(4))>>2)]=tempI64[1]); break;
697 6 : case 'float': HEAPF32[((ptr)>>2)]=value; break;
698 6 : case 'double': HEAPF64[((ptr)>>3)]=value; break;
699 6 : default: abort('invalid type for setValue: ' + type);
700 6 : }
701 6 : }
702 1 : Module['setValue'] = setValue;
703 1 :
704 1 : // Parallel to setValue.
705 1 : function getValue(ptr, type, noSafe) {
706 0 : type = type || 'i8';
707 0 : if (type.charAt(type.length-1) === '*') type = 'i32'; // pointers are 32-bit
708 0 : switch(type) {
709 0 : case 'i1': return HEAP8[(ptr)];
710 0 : case 'i8': return HEAP8[(ptr)];
711 0 : case 'i16': return HEAP16[((ptr)>>1)];
712 0 : case 'i32': return HEAP32[((ptr)>>2)];
713 0 : case 'i64': return HEAP32[((ptr)>>2)];
714 0 : case 'float': return HEAPF32[((ptr)>>2)];
715 0 : case 'double': return HEAPF64[((ptr)>>3)];
716 0 : default: abort('invalid type for setValue: ' + type);
717 0 : }
718 0 : return null;
719 1 : }
720 1 : Module['getValue'] = getValue;
721 1 :
722 1 : var ALLOC_NORMAL = 0; // Tries to use _malloc()
723 1 : var ALLOC_STACK = 1; // Lives for the duration of the current function call
724 1 : var ALLOC_STATIC = 2; // Cannot be freed
725 1 : var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk
726 1 : var ALLOC_NONE = 4; // Do not allocate
727 1 : Module['ALLOC_NORMAL'] = ALLOC_NORMAL;
728 1 : Module['ALLOC_STACK'] = ALLOC_STACK;
729 1 : Module['ALLOC_STATIC'] = ALLOC_STATIC;
730 1 : Module['ALLOC_DYNAMIC'] = ALLOC_DYNAMIC;
731 1 : Module['ALLOC_NONE'] = ALLOC_NONE;
732 1 :
733 1 : // allocate(): This is for internal use. You can use it yourself as well, but the interface
734 1 : // is a little tricky (see docs right below). The reason is that it is optimized
735 1 : // for multiple syntaxes to save space in generated code. So you should
736 1 : // normally not use allocate(), and instead allocate memory using _malloc(),
737 1 : // initialize it with setValue(), and so forth.
738 1 : // @slab: An array of data, or a number. If a number, then the size of the block to allocate,
739 1 : // in *bytes* (note that this is sometimes confusing: the next parameter does not
740 1 : // affect this!)
741 1 : // @types: Either an array of types, one for each byte (or 0 if no type at that position),
742 1 : // or a single type which is used for the entire block. This only matters if there
743 1 : // is initial data - if @slab is a number, then this does not matter at all and is
744 1 : // ignored.
745 1 : // @allocator: How to allocate memory, see ALLOC_*
746 24 : function allocate(slab, types, allocator, ptr) {
747 24 : var zeroinit, size;
748 24 : if (typeof slab === 'number') {
749 24 : zeroinit = true;
750 24 : size = slab;
751 24 : } else {
752 24 : zeroinit = false;
753 24 : size = slab.length;
754 24 : }
755 24 :
756 24 : var singleType = typeof types === 'string' ? types : null;
757 24 :
758 24 : var ret;
759 24 : if (allocator == ALLOC_NONE) {
760 24 : ret = ptr;
761 24 : } else {
762 24 : ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
763 24 : }
764 24 :
765 24 : if (zeroinit) {
766 24 : var ptr = ret, stop;
767 24 : assert((ret & 3) == 0);
768 24 : stop = ret + (size & ~3);
769 24 : for (; ptr < stop; ptr += 4) {
770 24 : HEAP32[((ptr)>>2)]=0;
771 24 : }
772 24 : stop = ret + size;
773 24 : while (ptr < stop) {
774 24 : HEAP8[((ptr++)|0)]=0;
775 24 : }
776 24 : return ret;
777 24 : }
778 24 :
779 24 : if (singleType === 'i8') {
780 24 : if (slab.subarray || slab.slice) {
781 24 : HEAPU8.set(slab, ret);
782 24 : } else {
783 24 : HEAPU8.set(new Uint8Array(slab), ret);
784 24 : }
785 24 : return ret;
786 24 : }
787 24 :
788 24 : var i = 0, type, typeSize, previousType;
789 24 : while (i < size) {
790 24 : var curr = slab[i];
791 24 :
792 24 : if (typeof curr === 'function') {
793 24 : curr = Runtime.getFunctionIndex(curr);
794 24 : }
795 24 :
796 24 : type = singleType || types[i];
797 24 : if (type === 0) {
798 24 : i++;
799 24 : continue;
800 24 : }
801 24 :
802 24 : if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later
803 24 :
804 24 : setValue(ret+i, curr, type);
805 24 :
806 24 : // no need to look up size unless type changes, so cache it
807 24 : if (previousType !== type) {
808 24 : typeSize = Runtime.getNativeTypeSize(type);
809 24 : previousType = type;
810 24 : }
811 24 : i += typeSize;
812 24 : }
813 24 :
814 24 : return ret;
815 24 : }
816 1 : Module['allocate'] = allocate;
817 1 :
818 8 : function Pointer_stringify(ptr, /* optional */ length) {
819 8 : // TODO: use TextDecoder
820 8 : // Find the length, and check for UTF while doing so
821 8 : var hasUtf = false;
822 8 : var t;
823 8 : var i = 0;
824 8 : while (1) {
825 8 : t = HEAPU8[(((ptr)+(i))|0)];
826 8 : if (t >= 128) hasUtf = true;
827 8 : else if (t == 0 && !length) break;
828 8 : i++;
829 8 : if (length && i == length) break;
830 8 : }
831 8 : if (!length) length = i;
832 8 :
833 8 : var ret = '';
834 8 :
835 8 : if (!hasUtf) {
836 8 : var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack
837 8 : var curr;
838 8 : while (length > 0) {
839 8 : curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));
840 8 : ret = ret ? ret + curr : curr;
841 8 : ptr += MAX_CHUNK;
842 8 : length -= MAX_CHUNK;
843 8 : }
844 8 : return ret;
845 8 : }
846 8 :
847 8 : var utf8 = new Runtime.UTF8Processor();
848 8 : for (i = 0; i < length; i++) {
849 8 : t = HEAPU8[(((ptr)+(i))|0)];
850 8 : ret += utf8.processCChar(t);
851 8 : }
852 8 : return ret;
853 8 : }
854 1 : Module['Pointer_stringify'] = Pointer_stringify;
855 1 :
856 1 : // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns
857 1 : // a copy of that string as a Javascript String object.
858 1 : function UTF16ToString(ptr) {
859 0 : var i = 0;
860 0 :
861 0 : var str = '';
862 0 : while (1) {
863 0 : var codeUnit = HEAP16[(((ptr)+(i*2))>>1)];
864 0 : if (codeUnit == 0)
865 0 : return str;
866 0 : ++i;
867 0 : // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.
868 0 : str += String.fromCharCode(codeUnit);
869 0 : }
870 1 : }
871 1 : Module['UTF16ToString'] = UTF16ToString;
872 1 :
873 1 : // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
874 1 : // null-terminated and encoded in UTF16LE form. The copy will require at most (str.length*2+1)*2 bytes of space in the HEAP.
875 1 : function stringToUTF16(str, outPtr) {
876 0 : for(var i = 0; i < str.length; ++i) {
877 0 : // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.
878 0 : var codeUnit = str.charCodeAt(i); // possibly a lead surrogate
879 0 : HEAP16[(((outPtr)+(i*2))>>1)]=codeUnit;
880 0 : }
881 0 : // Null-terminate the pointer to the HEAP.
882 0 : HEAP16[(((outPtr)+(str.length*2))>>1)]=0;
883 1 : }
884 1 : Module['stringToUTF16'] = stringToUTF16;
885 1 :
886 1 : // Given a pointer 'ptr' to a null-terminated UTF32LE-encoded string in the emscripten HEAP, returns
887 1 : // a copy of that string as a Javascript String object.
888 1 : function UTF32ToString(ptr) {
889 0 : var i = 0;
890 0 :
891 0 : var str = '';
892 0 : while (1) {
893 0 : var utf32 = HEAP32[(((ptr)+(i*4))>>2)];
894 0 : if (utf32 == 0)
895 0 : return str;
896 0 : ++i;
897 0 : // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.
898 0 : if (utf32 >= 0x10000) {
899 0 : var ch = utf32 - 0x10000;
900 0 : str += String.fromCharCode(0xD800 | (ch >> 10), 0xDC00 | (ch & 0x3FF));
901 0 : } else {
902 0 : str += String.fromCharCode(utf32);
903 0 : }
904 0 : }
905 1 : }
906 1 : Module['UTF32ToString'] = UTF32ToString;
907 1 :
908 1 : // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',
909 1 : // null-terminated and encoded in UTF32LE form. The copy will require at most (str.length+1)*4 bytes of space in the HEAP,
910 1 : // but can use less, since str.length does not return the number of characters in the string, but the number of UTF-16 code units in the string.
911 1 : function stringToUTF32(str, outPtr) {
912 0 : var iChar = 0;
913 0 : for(var iCodeUnit = 0; iCodeUnit < str.length; ++iCodeUnit) {
914 0 : // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.
915 0 : var codeUnit = str.charCodeAt(iCodeUnit); // possibly a lead surrogate
916 0 : if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {
917 0 : var trailSurrogate = str.charCodeAt(++iCodeUnit);
918 0 : codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | (trailSurrogate & 0x3FF);
919 0 : }
920 0 : HEAP32[(((outPtr)+(iChar*4))>>2)]=codeUnit;
921 0 : ++iChar;
922 0 : }
923 0 : // Null-terminate the pointer to the HEAP.
924 0 : HEAP32[(((outPtr)+(iChar*4))>>2)]=0;
925 1 : }
926 1 : Module['stringToUTF32'] = stringToUTF32;
927 1 :
928 1 : function demangle(func) {
929 0 : var i = 3;
930 0 : // params, etc.
931 0 : var basicTypes = {
932 0 : 'v': 'void',
933 0 : 'b': 'bool',
934 0 : 'c': 'char',
935 0 : 's': 'short',
936 0 : 'i': 'int',
937 0 : 'l': 'long',
938 0 : 'f': 'float',
939 0 : 'd': 'double',
940 0 : 'w': 'wchar_t',
941 0 : 'a': 'signed char',
942 0 : 'h': 'unsigned char',
943 0 : 't': 'unsigned short',
944 0 : 'j': 'unsigned int',
945 0 : 'm': 'unsigned long',
946 0 : 'x': 'long long',
947 0 : 'y': 'unsigned long long',
948 0 : 'z': '...'
949 0 : };
950 0 : var subs = [];
951 0 : var first = true;
952 0 : function dump(x) {
953 0 : //return;
954 0 : if (x) Module.print(x);
955 0 : Module.print(func);
956 0 : var pre = '';
957 0 : for (var a = 0; a < i; a++) pre += ' ';
958 0 : Module.print (pre + '^');
959 0 : }
960 0 : function parseNested() {
961 0 : i++;
962 0 : if (func[i] === 'K') i++; // ignore const
963 0 : var parts = [];
964 0 : while (func[i] !== 'E') {
965 0 : if (func[i] === 'S') { // substitution
966 0 : i++;
967 0 : var next = func.indexOf('_', i);
968 0 : var num = func.substring(i, next) || 0;
969 0 : parts.push(subs[num] || '?');
970 0 : i = next+1;
971 0 : continue;
972 0 : }
973 0 : if (func[i] === 'C') { // constructor
974 0 : parts.push(parts[parts.length-1]);
975 0 : i += 2;
976 0 : continue;
977 0 : }
978 0 : var size = parseInt(func.substr(i));
979 0 : var pre = size.toString().length;
980 0 : if (!size || !pre) { i--; break; } // counter i++ below us
981 0 : var curr = func.substr(i + pre, size);
982 0 : parts.push(curr);
983 0 : subs.push(curr);
984 0 : i += pre + size;
985 0 : }
986 0 : i++; // skip E
987 0 : return parts;
988 0 : }
989 0 : function parse(rawList, limit, allowVoid) { // main parser
990 0 : limit = limit || Infinity;
991 0 : var ret = '', list = [];
992 0 : function flushList() {
993 0 : return '(' + list.join(', ') + ')';
994 0 : }
995 0 : var name;
996 0 : if (func[i] === 'N') {
997 0 : // namespaced N-E
998 0 : name = parseNested().join('::');
999 0 : limit--;
1000 0 : if (limit === 0) return rawList ? [name] : name;
1001 0 : } else {
1002 0 : // not namespaced
1003 0 : if (func[i] === 'K' || (first && func[i] === 'L')) i++; // ignore const and first 'L'
1004 0 : var size = parseInt(func.substr(i));
1005 0 : if (size) {
1006 0 : var pre = size.toString().length;
1007 0 : name = func.substr(i + pre, size);
1008 0 : i += pre + size;
1009 0 : }
1010 0 : }
1011 0 : first = false;
1012 0 : if (func[i] === 'I') {
1013 0 : i++;
1014 0 : var iList = parse(true);
1015 0 : var iRet = parse(true, 1, true);
1016 0 : ret += iRet[0] + ' ' + name + '<' + iList.join(', ') + '>';
1017 0 : } else {
1018 0 : ret = name;
1019 0 : }
1020 0 : paramLoop: while (i < func.length && limit-- > 0) {
1021 0 : //dump('paramLoop');
1022 0 : var c = func[i++];
1023 0 : if (c in basicTypes) {
1024 0 : list.push(basicTypes[c]);
1025 0 : } else {
1026 0 : switch (c) {
1027 0 : case 'P': list.push(parse(true, 1, true)[0] + '*'); break; // pointer
1028 0 : case 'R': list.push(parse(true, 1, true)[0] + '&'); break; // reference
1029 0 : case 'L': { // literal
1030 0 : i++; // skip basic type
1031 0 : var end = func.indexOf('E', i);
1032 0 : var size = end - i;
1033 0 : list.push(func.substr(i, size));
1034 0 : i += size + 2; // size + 'EE'
1035 0 : break;
1036 0 : }
1037 0 : case 'A': { // array
1038 0 : var size = parseInt(func.substr(i));
1039 0 : i += size.toString().length;
1040 0 : if (func[i] !== '_') throw '?';
1041 0 : i++; // skip _
1042 0 : list.push(parse(true, 1, true)[0] + ' [' + size + ']');
1043 0 : break;
1044 0 : }
1045 0 : case 'E': break paramLoop;
1046 0 : default: ret += '?' + c; break paramLoop;
1047 0 : }
1048 0 : }
1049 0 : }
1050 0 : if (!allowVoid && list.length === 1 && list[0] === 'void') list = []; // avoid (void)
1051 0 : if (rawList) {
1052 0 : if (ret) {
1053 0 : list.push(ret + '?');
1054 0 : }
1055 0 : return list;
1056 0 : } else {
1057 0 : return ret + flushList();
1058 0 : }
1059 0 : }
1060 0 : try {
1061 0 : // Special-case the entry point, since its name differs from other name mangling.
1062 0 : if (func == 'Object._main' || func == '_main') {
1063 0 : return 'main()';
1064 0 : }
1065 0 : if (typeof func === 'number') func = Pointer_stringify(func);
1066 0 : if (func[0] !== '_') return func;
1067 0 : if (func[1] !== '_') return func; // C function
1068 0 : if (func[2] !== 'Z') return func;
1069 0 : switch (func[3]) {
1070 0 : case 'n': return 'operator new()';
1071 0 : case 'd': return 'operator delete()';
1072 0 : }
1073 0 : return parse();
1074 0 : } catch(e) {
1075 0 : return func;
1076 0 : }
1077 1 : }
1078 1 :
1079 1 : function demangleAll(text) {
1080 0 : return text.replace(/__Z[\w\d_]+/g, function(x) { var y = demangle(x); return x === y ? x : (x + ' [' + y + ']') });
1081 1 : }
1082 1 :
1083 1 : function stackTrace() {
1084 0 : var stack = new Error().stack;
1085 0 : return stack ? demangleAll(stack) : '(no stack trace available)'; // Stack trace is not available at least on IE10 and Safari 6.
1086 1 : }
1087 1 :
1088 1 : // Memory management
1089 1 :
1090 1 : var PAGE_SIZE = 4096;
1091 1 : function alignMemoryPage(x) {
1092 1 : return (x+4095)&-4096;
1093 1 : }
1094 1 :
1095 1 : var HEAP;
1096 1 : var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
1097 1 :
1098 1 : var STATIC_BASE = 0, STATICTOP = 0, staticSealed = false; // static area
1099 1 : var STACK_BASE = 0, STACKTOP = 0, STACK_MAX = 0; // stack area
1100 1 : var DYNAMIC_BASE = 0, DYNAMICTOP = 0; // dynamic area handled by sbrk
1101 1 :
1102 1 : function enlargeMemory() {
1103 0 : abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.');
1104 1 : }
1105 1 :
1106 1 : var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;
1107 1 : var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 134217728;
1108 1 : var FAST_MEMORY = Module['FAST_MEMORY'] || 2097152;
1109 1 :
1110 1 : var totalMemory = 4096;
1111 1 : while (totalMemory < TOTAL_MEMORY || totalMemory < 2*TOTAL_STACK) {
1112 1 : if (totalMemory < 16*1024*1024) {
1113 1 : totalMemory *= 2;
1114 1 : } else {
1115 1 : totalMemory += 16*1024*1024
1116 1 : }
1117 1 : }
1118 1 : if (totalMemory !== TOTAL_MEMORY) {
1119 1 : Module.printErr('increasing TOTAL_MEMORY to ' + totalMemory + ' to be more reasonable');
1120 1 : TOTAL_MEMORY = totalMemory;
1121 1 : }
1122 1 :
1123 1 : // Initialize the runtime's memory
1124 1 : // check for full engine support (use string 'subarray' to avoid closure compiler confusion)
1125 1 : assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && !!(new Int32Array(1)['subarray']) && !!(new Int32Array(1)['set']),
1126 1 : 'JS engine does not provide full typed array support');
1127 1 :
1128 1 : var buffer = new ArrayBuffer(TOTAL_MEMORY);
1129 1 : HEAP8 = new Int8Array(buffer);
1130 1 : HEAP16 = new Int16Array(buffer);
1131 1 : HEAP32 = new Int32Array(buffer);
1132 1 : HEAPU8 = new Uint8Array(buffer);
1133 1 : HEAPU16 = new Uint16Array(buffer);
1134 1 : HEAPU32 = new Uint32Array(buffer);
1135 1 : HEAPF32 = new Float32Array(buffer);
1136 1 : HEAPF64 = new Float64Array(buffer);
1137 1 :
1138 1 : // Endianness check (note: assumes compiler arch was little-endian)
1139 1 : HEAP32[0] = 255;
1140 1 : assert(HEAPU8[0] === 255 && HEAPU8[3] === 0, 'Typed arrays 2 must be run on a little-endian system');
1141 1 :
1142 1 : Module['HEAP'] = HEAP;
1143 1 : Module['HEAP8'] = HEAP8;
1144 1 : Module['HEAP16'] = HEAP16;
1145 1 : Module['HEAP32'] = HEAP32;
1146 1 : Module['HEAPU8'] = HEAPU8;
1147 1 : Module['HEAPU16'] = HEAPU16;
1148 1 : Module['HEAPU32'] = HEAPU32;
1149 1 : Module['HEAPF32'] = HEAPF32;
1150 1 : Module['HEAPF64'] = HEAPF64;
1151 1 :
1152 5 : function callRuntimeCallbacks(callbacks) {
1153 5 : while(callbacks.length > 0) {
1154 5 : var callback = callbacks.shift();
1155 5 : if (typeof callback == 'function') {
1156 5 : callback();
1157 5 : continue;
1158 5 : }
1159 5 : var func = callback.func;
1160 5 : if (typeof func === 'number') {
1161 5 : if (callback.arg === undefined) {
1162 5 : Runtime.dynCall('v', func);
1163 5 : } else {
1164 5 : Runtime.dynCall('vi', func, [callback.arg]);
1165 5 : }
1166 5 : } else {
1167 5 : func(callback.arg === undefined ? null : callback.arg);
1168 5 : }
1169 5 : }
1170 5 : }
1171 1 :
1172 1 : var __ATPRERUN__ = []; // functions called before the runtime is initialized
1173 1 : var __ATINIT__ = []; // functions called during startup
1174 1 : var __ATMAIN__ = []; // functions called when main() is to be run
1175 1 : var __ATEXIT__ = []; // functions called during shutdown
1176 1 : var __ATPOSTRUN__ = []; // functions called after the runtime has exited
1177 1 :
1178 1 : var runtimeInitialized = false;
1179 1 :
1180 1 : function preRun() {
1181 1 : // compatibility - merge in anything from Module['preRun'] at this time
1182 1 : if (Module['preRun']) {
1183 1 : if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
1184 1 : while (Module['preRun'].length) {
1185 1 : addOnPreRun(Module['preRun'].shift());
1186 1 : }
1187 1 : }
1188 1 : callRuntimeCallbacks(__ATPRERUN__);
1189 1 : }
1190 1 :
1191 2 : function ensureInitRuntime() {
1192 2 : if (runtimeInitialized) return;
1193 2 : runtimeInitialized = true;
1194 2 : callRuntimeCallbacks(__ATINIT__);
1195 2 : }
1196 1 :
1197 1 : function preMain() {
1198 1 : callRuntimeCallbacks(__ATMAIN__);
1199 1 : }
1200 1 :
1201 1 : function exitRuntime() {
1202 1 : callRuntimeCallbacks(__ATEXIT__);
1203 1 : }
1204 1 :
1205 1 : function postRun() {
1206 1 : // compatibility - merge in anything from Module['postRun'] at this time
1207 1 : if (Module['postRun']) {
1208 1 : if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];
1209 1 : while (Module['postRun'].length) {
1210 1 : addOnPostRun(Module['postRun'].shift());
1211 1 : }
1212 1 : }
1213 1 : callRuntimeCallbacks(__ATPOSTRUN__);
1214 1 : }
1215 1 :
1216 2 : function addOnPreRun(cb) {
1217 2 : __ATPRERUN__.unshift(cb);
1218 2 : }
1219 1 : Module['addOnPreRun'] = Module.addOnPreRun = addOnPreRun;
1220 1 :
1221 1 : function addOnInit(cb) {
1222 0 : __ATINIT__.unshift(cb);
1223 1 : }
1224 1 : Module['addOnInit'] = Module.addOnInit = addOnInit;
1225 1 :
1226 1 : function addOnPreMain(cb) {
1227 0 : __ATMAIN__.unshift(cb);
1228 1 : }
1229 1 : Module['addOnPreMain'] = Module.addOnPreMain = addOnPreMain;
1230 1 :
1231 1 : function addOnExit(cb) {
1232 0 : __ATEXIT__.unshift(cb);
1233 1 : }
1234 1 : Module['addOnExit'] = Module.addOnExit = addOnExit;
1235 1 :
1236 1 : function addOnPostRun(cb) {
1237 1 : __ATPOSTRUN__.unshift(cb);
1238 1 : }
1239 1 : Module['addOnPostRun'] = Module.addOnPostRun = addOnPostRun;
1240 1 :
1241 1 : // Tools
1242 1 :
1243 1 : // This processes a JS string into a C-line array of numbers, 0-terminated.
1244 1 : // For LLVM-originating strings, see parser.js:parseLLVMString function
1245 4 : function intArrayFromString(stringy, dontAddNull, length /* optional */) {
1246 4 : var ret = (new Runtime.UTF8Processor()).processJSString(stringy);
1247 4 : if (length) {
1248 4 : ret.length = length;
1249 4 : }
1250 4 : if (!dontAddNull) {
1251 4 : ret.push(0);
1252 4 : }
1253 4 : return ret;
1254 4 : }
1255 1 : Module['intArrayFromString'] = intArrayFromString;
1256 1 :
1257 1 : function intArrayToString(array) {
1258 0 : var ret = [];
1259 0 : for (var i = 0; i < array.length; i++) {
1260 0 : var chr = array[i];
1261 0 : if (chr > 0xFF) {
1262 0 : chr &= 0xFF;
1263 0 : }
1264 0 : ret.push(String.fromCharCode(chr));
1265 0 : }
1266 0 : return ret.join('');
1267 1 : }
1268 1 : Module['intArrayToString'] = intArrayToString;
1269 1 :
1270 1 : // Write a Javascript array to somewhere in the heap
1271 1 : function writeStringToMemory(string, buffer, dontAddNull) {
1272 0 : var array = intArrayFromString(string, dontAddNull);
1273 0 : var i = 0;
1274 0 : while (i < array.length) {
1275 0 : var chr = array[i];
1276 0 : HEAP8[(((buffer)+(i))|0)]=chr;
1277 0 : i = i + 1;
1278 0 : }
1279 1 : }
1280 1 : Module['writeStringToMemory'] = writeStringToMemory;
1281 1 :
1282 1 : function writeArrayToMemory(array, buffer) {
1283 0 : for (var i = 0; i < array.length; i++) {
1284 0 : HEAP8[(((buffer)+(i))|0)]=array[i];
1285 0 : }
1286 1 : }
1287 1 : Module['writeArrayToMemory'] = writeArrayToMemory;
1288 1 :
1289 6 : function writeAsciiToMemory(str, buffer, dontAddNull) {
1290 6 : for (var i = 0; i < str.length; i++) {
1291 6 : HEAP8[(((buffer)+(i))|0)]=str.charCodeAt(i);
1292 6 : }
1293 6 : if (!dontAddNull) HEAP8[(((buffer)+(str.length))|0)]=0;
1294 6 : }
1295 1 : Module['writeAsciiToMemory'] = writeAsciiToMemory;
1296 1 :
1297 1 : function unSign(value, bits, ignore) {
1298 0 : if (value >= 0) {
1299 0 : return value;
1300 0 : }
1301 0 : return bits <= 32 ? 2*Math.abs(1 << (bits-1)) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts
1302 0 : : Math.pow(2, bits) + value;
1303 1 : }
1304 26 : function reSign(value, bits, ignore) {
1305 26 : if (value <= 0) {
1306 26 : return value;
1307 26 : }
1308 26 : var half = bits <= 32 ? Math.abs(1 << (bits-1)) // abs is needed if bits == 32
1309 26 : : Math.pow(2, bits-1);
1310 26 : if (value >= half && (bits <= 32 || value > half)) { // for huge values, we can hit the precision limit and always get true here. so don't do that
1311 26 : // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors
1312 26 : // TODO: In i64 mode 1, resign the two parts separately and safely
1313 26 : value = -2*half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts
1314 26 : }
1315 26 : return value;
1316 26 : }
1317 1 :
1318 1 : // check for imul support, and also for correctness ( https://bugs.webkit.org/show_bug.cgi?id=126345 )
1319 1 : if (!Math['imul'] || Math['imul'](0xffffffff, 5) !== -5) Math['imul'] = function imul(a, b) {
1320 0 : var ah = a >>> 16;
1321 0 : var al = a & 0xffff;
1322 0 : var bh = b >>> 16;
1323 0 : var bl = b & 0xffff;
1324 0 : return (al*bl + ((ah*bl + al*bh) << 16))|0;
1325 1 : };
1326 1 : Math.imul = Math['imul'];
1327 1 :
1328 1 :
1329 1 : var Math_abs = Math.abs;
1330 1 : var Math_cos = Math.cos;
1331 1 : var Math_sin = Math.sin;
1332 1 : var Math_tan = Math.tan;
1333 1 : var Math_acos = Math.acos;
1334 1 : var Math_asin = Math.asin;
1335 1 : var Math_atan = Math.atan;
1336 1 : var Math_atan2 = Math.atan2;
1337 1 : var Math_exp = Math.exp;
1338 1 : var Math_log = Math.log;
1339 1 : var Math_sqrt = Math.sqrt;
1340 1 : var Math_ceil = Math.ceil;
1341 1 : var Math_floor = Math.floor;
1342 1 : var Math_pow = Math.pow;
1343 1 : var Math_imul = Math.imul;
1344 1 : var Math_fround = Math.fround;
1345 1 : var Math_min = Math.min;
1346 1 :
1347 1 : // A counter of dependencies for calling run(). If we need to
1348 1 : // do asynchronous work before running, increment this and
1349 1 : // decrement it. Incrementing must happen in a place like
1350 1 : // PRE_RUN_ADDITIONS (used by emcc to add file preloading).
1351 1 : // Note that you can add dependencies in preRun, even though
1352 1 : // it happens right before run - run will be postponed until
1353 1 : // the dependencies are met.
1354 1 : var runDependencies = 0;
1355 1 : var runDependencyWatcher = null;
1356 1 : var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled
1357 1 :
1358 1 : function addRunDependency(id) {
1359 0 : runDependencies++;
1360 0 : if (Module['monitorRunDependencies']) {
1361 0 : Module['monitorRunDependencies'](runDependencies);
1362 0 : }
1363 1 : }
1364 1 : Module['addRunDependency'] = addRunDependency;
1365 1 : function removeRunDependency(id) {
1366 0 : runDependencies--;
1367 0 : if (Module['monitorRunDependencies']) {
1368 0 : Module['monitorRunDependencies'](runDependencies);
1369 0 : }
1370 0 : if (runDependencies == 0) {
1371 0 : if (runDependencyWatcher !== null) {
1372 0 : clearInterval(runDependencyWatcher);
1373 0 : runDependencyWatcher = null;
1374 0 : }
1375 0 : if (dependenciesFulfilled) {
1376 0 : var callback = dependenciesFulfilled;
1377 0 : dependenciesFulfilled = null;
1378 0 : callback(); // can add another dependenciesFulfilled
1379 0 : }
1380 0 : }
1381 1 : }
1382 1 : Module['removeRunDependency'] = removeRunDependency;
1383 1 :
1384 1 : Module["preloadedImages"] = {}; // maps url to image data
1385 1 : Module["preloadedAudios"] = {}; // maps url to audio data
1386 1 :
1387 1 :
1388 1 : var memoryInitializer = null;
1389 1 :
1390 1 : // === Body ===
1391 1 :
1392 1 :
1393 1 :
1394 1 :
1395 1 :
1396 1 : STATIC_BASE = 8;
1397 1 :
1398 1 : STATICTOP = STATIC_BASE + Runtime.alignMemory(13467);
1399 1 : /* global initializers */ __ATINIT__.push();
1400 1 :
1401 1 :
1402 1 : /* memory initializer */ allocate([99,97,110,110,111,116,32,99,114,101,97,116,101,32,115,116,97,116,101,58,32,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,40,101,114,114,111,114,32,111,98,106,101,99,116,32,105,115,32,110,111,116,32,97,32,115,116,114,105,110,103,41,0,0,88,0,0,0,0,0,0,0,108,117,97,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,112,114,105,110,116,0,0,0,0,0,0,0,112,114,105,110,116,0,0,0,101,114,114,111,114,32,99,97,108,108,105,110,103,32,39,112,114,105,110,116,39,32,40,37,115,41,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,116,101,114,114,117,112,116,101,100,33,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,40,110,111,32,101,114,114,111,114,32,109,101,115,115,97,103,101,41,0,0,0,0,0,0,61,115,116,100,105,110,0,0,60,101,111,102,62,0,0,0,114,101,116,117,114,110,32,37,115,0,0,0,0,0,0,0,95,80,82,79,77,80,84,0,95,80,82,79,77,80,84,50,0,0,0,0,0,0,0,0,62,32,0,0,0,0,0,0,62,62,32,0,0,0,0,0,97,114,103,0,0,0,0,0,45,0,0,0,0,0,0,0,45,45,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,115,99,114,105,112,116,0,0,0,0,61,40,99,111,109,109,97,110,100,32,108,105,110,101,41,0,114,101,113,117,105,114,101,0,61,76,85,65,95,73,78,73,84,95,53,95,50,0,0,0,61,76,85,65,95,73,78,73,84,0,0,0,0,0,0,0,76,117,97,32,53,46,50,46,50,32,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,49,57,57,52,45,50,48,49,51,32,76,117,97,46,111,114,103,44,32,80,85,67,45,82,105,111,0,0,0,0,0,37,115,58,32,0,0,0,0,39,37,115,39,32,110,101,101,100,115,32,97,114,103,117,109,101,110,116,10,0,0,0,0,117,110,114,101,99,111,103,110,105,122,101,100,32,111,112,116,105,111,110,32,39,37,115,39,10,0,0,0,0,0,0,0,117,115,97,103,101,58,32,37,115,32,91,111,112,116,105,111,110,115,93,32,91,115,99,114,105,112,116,32,91,97,114,103,115,93,93,10,65,118,97,105,108,97,98,108,101,32,111,112,116,105,111,110,115,32,97,114,101,58,10,32,32,45,101,32,115,116,97,116,32,32,101,120,101,99,117,116,101,32,115,116,114,105,110,103,32,39,115,116,97,116,39,10,32,32,45,105,32,32,32,32,32,32,32,101,110,116,101,114,32,105,110,116,101,114,97,99,116,105,118,101,32,109,111,100,101,32,97,102,116,101,114,32,101,120,101,99,117,116,105,110,103,32,39,115,99,114,105,112,116,39,10,32,32,45,108,32,110,97,109,101,32,32,114,101,113,117,105,114,101,32,108,105,98,114,97,114,121,32,39,110,97,109,101,39,10,32,32,45,118,32,32,32,32,32,32,32,115,104,111,119,32,118,101,114,115,105,111,110,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,45,69,32,32,32,32,32,32,32,105,103,110,111,114,101,32,101,110,118,105,114,111,110,109,101,110,116,32,118,97,114,105,97,98,108,101,115,10,32,32,45,45,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,10,32,32,45,32,32,32,32,32,32,32,32,115,116,111,112,32,104,97,110,100,108,105,110,103,32,111,112,116,105,111,110,115,32,97,110,100,32,101,120,101,99,117,116,101,32,115,116,100,105,110,10,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,0,0,0,0,0,96,127,64,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,115,116,97,99,107,32,116,114,97,99,101,98,97,99,107,58,0,0,0,0,0,0,0,0,10,9,46,46,46,0,0,0,83,108,110,116,0,0,0,0,10,9,37,115,58,0,0,0,37,100,58,0,0,0,0,0,32,105,110,32,0,0,0,0,10,9,40,46,46,46,116,97,105,108,32,99,97,108,108,115,46,46,46,41,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,40,37,115,41,0,0,0,110,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,99,97,108,108,105,110,103,32,39,37,115,39,32,111,110,32,98,97,100,32,115,101,108,102,32,40,37,115,41,0,0,0,63,0,0,0,0,0,0,0,98,97,100,32,97,114,103,117,109,101,110,116,32,35,37,100,32,116,111,32,39,37,115,39,32,40,37,115,41,0,0,0,83,108,0,0,0,0,0,0,37,115,58,37,100,58,32,0,0,0,0,0,0,0,0,0,37,115,58,32,37,115,0,0,101,120,105,116,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,115,39,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,32,40,37,115,41,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,98,117,102,102,101,114,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,61,115,116,100,105,110,0,0,64,37,115,0,0,0,0,0,114,0,0,0,0,0,0,0,111,112,101,110,0,0,0,0,114,98,0,0,0,0,0,0,114,101,111,112,101,110,0,0,114,101,97,100,0,0,0,0,111,98,106,101,99,116,32,108,101,110,103,116,104,32,105,115,32,110,111,116,32,97,32,110,117,109,98,101,114,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,116,114,117,101,0,0,0,0,102,97,108,115,101,0,0,0,110,105,108,0,0,0,0,0,37,115,58,32,37,112,0,0,95,76,79,65,68,69,68,0,110,97,109,101,32,99,111,110,102,108,105,99,116,32,102,111,114,32,109,111,100,117,108,101,32,39,37,115,39,0,0,0,116,111,111,32,109,97,110,121,32,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,109,117,108,116,105,112,108,101,32,76,117,97,32,86,77,115,32,100,101,116,101,99,116,101,100,0,0,0,0,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,58,32,97,112,112,46,32,110,101,101,100,115,32,37,102,44,32,76,117,97,32,99,111,114,101,32,112,114,111,118,105,100,101,115,32,37,102,0,0,0,98,97,100,32,99,111,110,118,101,114,115,105,111,110,32,110,117,109,98,101,114,45,62,105,110,116,59,32,109,117,115,116,32,114,101,99,111,109,112,105,108,101,32,76,117,97,32,119,105,116,104,32,112,114,111,112,101,114,32,115,101,116,116,105,110,103,115,0,0,0,0,0,80,65,78,73,67,58,32,117,110,112,114,111,116,101,99,116,101,100,32,101,114,114,111,114,32,105,110,32,99,97,108,108,32,116,111,32,76,117,97,32,65,80,73,32,40,37,115,41,10,0,0,0,0,0,0,0,239,187,191,0,0,0,0,0,99,97,110,110,111,116,32,37,115,32,37,115,58,32,37,115,0,0,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,37,115,0,0,0,0,0,102,0,0,0,0,0,0,0,46,0,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,39,37,115,39,0,0,0,109,97,105,110,32,99,104,117,110,107,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,60,37,115,58,37,100,62,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,37,115,32,39,37,115,39,32,40,97,32,37,115,32,118,97,108,117,101,41,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,37,115,32,97,32,37,115,32,118,97,108,117,101,0,0,0,0,0,0,0,0,99,111,110,99,97,116,101,110,97,116,101,0,0,0,0,0,112,101,114,102,111,114,109,32,97,114,105,116,104,109,101,116,105,99,32,111,110,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,116,119,111,32,37,115,32,118,97,108,117,101,115,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,99,111,109,112,97,114,101,32,37,115,32,119,105,116,104,32,37,115,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,108,111,99,97,108,0,0,0,95,69,78,86,0,0,0,0,103,108,111,98,97,108,0,0,102,105,101,108,100,0,0,0,117,112,118,97,108,117,101,0,99,111,110,115,116,97,110,116,0,0,0,0,0,0,0,0,109,101,116,104,111,100,0,0,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,111,114,32,105,116,101,114,97,116,111,114,0,0,0,0,109,101,116,97,109,101,116,104,111,100,0,0,0,0,0,0,61,91,67,93,0,0,0,0,67,0,0,0,0,0,0,0,61,63,0,0,0,0,0,0,109,97,105,110,0,0,0,0,76,117,97,0,0,0,0,0,40,42,116,101,109,112,111,114,97,114,121,41,0,0,0,0,40,42,118,97,114,97,114,103,41,0,0,0,0,0,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,67,32,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,97,99,114,111,115,115,32,97,32,67,45,99,97,108,108,32,98,111,117,110,100,97,114,121,0,0,0,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,121,105,101,108,100,32,102,114,111,109,32,111,117,116,115,105,100,101,32,97,32,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,98,105,110,97,114,121,0,0,116,101,120,116,0,0,0,0,97,116,116,101,109,112,116,32,116,111,32,108,111,97,100,32,97,32,37,115,32,99,104,117,110,107,32,40,109,111,100,101,32,105,115,32,39,37,115,39,41,0,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,101,114,114,111,114,32,104,97,110,100,108,105,110,103,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,110,111,110,45,115,117,115,112,101,110,100,101,100,32,99,111,114,111,117,116,105,110,101,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,99,97,108,108,0,0,0,0,110,111,32,109,101,115,115,97,103,101,0,0,0,0,0,0,101,114,114,111,114,32,105,110,32,95,95,103,99,32,109,101,116,97,109,101,116,104,111,100,32,40,37,115,41,0,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,95,71,0,0,0,0,0,0,112,97,99,107,97,103,101,0,99,111,114,111,117,116,105,110,101,0,0,0,0,0,0,0,116,97,98,108,101,0,0,0,105,111,0,0,0,0,0,0,111,115,0,0,0,0,0,0,115,116,114,105,110,103,0,0,98,105,116,51,50,0,0,0,109,97,116,104,0,0,0,0,100,101,98,117,103,0,0,0,144,11,0,0,1,0,0,0,152,11,0,0,2,0,0,0,48,13,0,0,3,0,0,0,160,11,0,0,4,0,0,0,56,13,0,0,5,0,0,0,64,13,0,0,6,0,0,0,72,13,0,0,7,0,0,0,168,11,0,0,8,0,0,0,80,13,0,0,9,0,0,0,88,13,0,0,10,0,0,0,192,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,95,73,79,95,105,110,112,117,116,0,0,0,0,0,0,0,115,116,100,105,110,0,0,0,95,73,79,95,111,117,116,112,117,116,0,0,0,0,0,0,115,116,100,111,117,116,0,0,115,116,100,101,114,114,0,0,70,73,76,69,42,0,0,0,99,97,110,110,111,116,32,99,108,111,115,101,32,115,116,97,110,100,97,114,100,32,102,105,108,101,0,0,0,0,0,0,95,95,105,110,100,101,120,0,144,11,0,0,1,0,0,0,152,11,0,0,12,0,0,0,160,11,0,0,13,0,0,0,168,11,0,0,14,0,0,0,176,11,0,0,15,0,0,0,184,11,0,0,16,0,0,0,192,11,0,0,17,0,0,0,200,11,0,0,18,0,0,0,208,11,0,0,19,0,0,0,0,0,0,0,0,0,0,0,99,108,111,115,101,0,0,0,102,108,117,115,104,0,0,0,108,105,110,101,115,0,0,0,114,101,97,100,0,0,0,0,115,101,101,107,0,0,0,0,115,101,116,118,98,117,102,0,119,114,105,116,101,0,0,0,95,95,103,99,0,0,0,0,95,95,116,111,115,116,114,105,110,103,0,0,0,0,0,0,102,105,108,101,32,40,99,108,111,115,101,100,41,0,0,0,102,105,108,101,32,40,37,112,41,0,0,0,0,0,0,0,37,46,49,52,103,0,0,0,97,116,116,101,109,112,116,32,116,111,32,117,115,101,32,97,32,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,72,12,0,0,80,12,0,0,88,12,0,0,0,0,0,0,110,111,0,0,0,0,0,0,102,117,108,108,0,0,0,0,108,105,110,101,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,128,12,0,0,136,12,0,0,144,12,0,0,0,0,0,0,115,101,116,0,0,0,0,0,99,117,114,0,0,0,0,0,101,110,100,0,0,0,0,0,110,111,116,32,97,110,32,105,110,116,101,103,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,0,0,37,108,102,0,0,0,0,0,116,111,111,32,109,97,110,121,32,111,112,116,105,111,110,115,0,0,0,0,0,0,0,0,102,105,108,101,32,105,115,32,97,108,114,101,97,100,121,32,99,108,111,115,101,100,0,0,37,115,0,0,0,0,0,0,105,110,112,117,116,0,0,0,111,112,101,110,0,0,0,0,111,117,116,112,117,116,0,0,112,111,112,101,110,0,0,0,116,109,112,102,105,108,101,0,116,121,112,101,0,0,0,0,115,116,97,110,100,97,114,100,32,37,115,32,102,105,108,101,32,105,115,32,99,108,111,115,101,100,0,0,0,0,0,0,99,108,111,115,101,100,32,102,105,108,101,0,0,0,0,0,102,105,108,101,0,0,0,0,114,0,0,0,0,0,0,0,39,112,111,112,101,110,39,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,0,0,119,0,0,0,0,0,0,0,99,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,32,39,37,115,39,32,40,37,115,41,0,0,0,0,0,0,114,119,97,0,0,0,0,0,105,110,118,97,108,105,100,32,109,111,100,101,0,0,0,0,240,14,0,0,20,0,0,0,248,14,0,0,21,0,0,0,0,15,0,0,22,0,0,0,8,15,0,0,23,0,0,0,16,15,0,0,24,0,0,0,24,15,0,0,25,0,0,0,32,15,0,0,26,0,0,0,40,15,0,0,27,0,0,0,48,15,0,0,28,0,0,0,56,15,0,0,29,0,0,0,64,15,0,0,30,0,0,0,72,15,0,0,31,0,0,0,80,15,0,0,32,0,0,0,88,15,0,0,33,0,0,0,96,15,0,0,34,0,0,0,104,15,0,0,35,0,0,0,112,15,0,0,36,0,0,0,120,15,0,0,37,0,0,0,128,15,0,0,38,0,0,0,136,15,0,0,39,0,0,0,144,15,0,0,40,0,0,0,152,15,0,0,41,0,0,0,160,15,0,0,42,0,0,0,176,15,0,0,43,0,0,0,184,15,0,0,44,0,0,0,192,15,0,0,45,0,0,0,200,15,0,0,46,0,0,0,208,15,0,0,47,0,0,0,0,0,0,0,0,0,0,0,112,105,0,0,0,0,0,0,104,117,103,101,0,0,0,0,97,98,115,0,0,0,0,0,97,99,111,115,0,0,0,0,97,115,105,110,0,0,0,0,97,116,97,110,50,0,0,0,97,116,97,110,0,0,0,0,99,101,105,108,0,0,0,0,99,111,115,104,0,0,0,0,99,111,115,0,0,0,0,0,100,101,103,0,0,0,0,0,101,120,112,0,0,0,0,0,102,108,111,111,114,0,0,0,102,109,111,100,0,0,0,0,102,114,101,120,112,0,0,0,108,100,101,120,112,0,0,0,108,111,103,49,48,0,0,0,108,111,103,0,0,0,0,0,109,97,120,0,0,0,0,0,109,105,110,0,0,0,0,0,109,111,100,102,0,0,0,0,112,111,119,0,0,0,0,0,114,97,100,0,0,0,0,0,114,97,110,100,111,109,0,0,114,97,110,100,111,109,115,101,101,100,0,0,0,0,0,0,115,105,110,104,0,0,0,0,115,105,110,0,0,0,0,0,115,113,114,116,0,0,0,0,116,97,110,104,0,0,0,0,116,97,110,0,0,0,0,0,105,110,116,101,114,118,97,108,32,105,115,32,101,109,112,116,121,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,0,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,0,0,0,0,0,0,0,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,101,114,114,111,114,58,32,98,108,111,99,107,32,116,111,111,32,98,105,103,0,0,95,67,76,73,66,83,0,0,95,95,103,99,0,0,0,0,16,20,0,0,48,0,0,0,24,20,0,0,49,0,0,0,40,20,0,0,50,0,0,0,0,0,0,0,0,0,0,0,108,111,97,100,101,114,115,0,115,101,97,114,99,104,101,114,115,0,0,0,0,0,0,0,112,97,116,104,0,0,0,0,76,85,65,95,80,65,84,72,95,53,95,50,0,0,0,0,76,85,65,95,80,65,84,72,0,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,115,104,97,114,101,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,108,117,97,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,47,105,110,105,116,46,108,117,97,59,46,47,63,46,108,117,97,0,0,0,0,0,0,0,99,112,97,116,104,0,0,0,76,85,65,95,67,80,65,84,72,95,53,95,50,0,0,0,76,85,65,95,67,80,65,84,72,0,0,0,0,0,0,0,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,63,46,115,111,59,47,117,115,114,47,108,111,99,97,108,47,108,105,98,47,108,117,97,47,53,46,50,47,108,111,97,100,97,108,108,46,115,111,59,46,47,63,46,115,111,0,0,0,0,47,10,59,10,63,10,33,10,45,10,0,0,0,0,0,0,99,111,110,102,105,103,0,0,95,76,79,65,68,69,68,0,108,111,97,100,101,100,0,0,95,80,82,69,76,79,65,68,0,0,0,0,0,0,0,0,112,114,101,108,111,97,100,0,32,18,0,0,51,0,0,0,40,18,0,0,52,0,0,0,0,0,0,0,0,0,0,0,109,111,100,117,108,101,0,0,114,101,113,117,105,114,101,0,39,112,97,99,107,97,103,101,46,115,101,97,114,99,104,101,114,115,39,32,109,117,115,116,32,98,101,32,97,32,116,97,98,108,101,0,0,0,0,0,109,111,100,117,108,101,32,39,37,115,39,32,110,111,116,32,102,111,117,110,100,58,37,115,0,0,0,0,0,0,0,0,95,78,65,77,69,0,0,0,102,0,0,0,0,0,0,0,39,109,111,100,117,108,101,39,32,110,111,116,32,99,97,108,108,101,100,32,102,114,111,109,32,97,32,76,117,97,32,102,117,110,99,116,105,111,110,0,95,77,0,0,0,0,0,0,95,80,65,67,75,65,71,69,0,0,0,0,0,0,0,0,59,59,0,0,0,0,0,0,59,1,59,0,0,0,0,0,1,0,0,0,0,0,0,0,76,85,65,95,78,79,69,78,86,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,10,9,110,111,32,109,111,100,117,108,101,32,39,37,115,39,32,105,110,32,102,105,108,101,32,39,37,115,39,0,0,0,101,114,114,111,114,32,108,111,97,100,105,110,103,32,109,111,100,117,108,101,32,39,37,115,39,32,102,114,111,109,32,102,105,108,101,32,39,37,115,39,58,10,9,37,115,0,0,0,46,0,0,0,0,0,0,0,95,0,0,0,0,0,0,0,108,117,97,111,112,101,110,95,37,115,0,0,0,0,0,0,100,121,110,97,109,105,99,32,108,105,98,114,97,114,105,101,115,32,110,111,116,32,101,110,97,98,108,101,100,59,32,99,104,101,99,107,32,121,111,117,114,32,76,117,97,32,105,110,115,116,97,108,108,97,116,105,111,110,0,0,0,0,0,0,39,112,97,99,107,97,103,101,46,37,115,39,32,109,117,115,116,32,98,101,32,97,32,115,116,114,105,110,103,0,0,0,63,0,0,0,0,0,0,0,10,9,110,111,32,102,105,108,101,32,39,37,115,39,0,0,114,0,0,0,0,0,0,0,10,9,110,111,32,102,105,101,108,100,32,112,97,99,107,97,103,101,46,112,114,101,108,111,97,100,91,39,37,115,39,93,0,0,0,0,0,0,0,0,108,111,97,100,108,105,98,0,115,101,97,114,99,104,112,97,116,104,0,0,0,0,0,0,115,101,101,97,108,108,0,0,95,95,105,110,100,101,120,0,97,98,115,101,110,116,0,0,105,110,105,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,110,78,0,0,0,0,0,0,120,88,0,0,0,0,0,0,40,110,117,108,108,41,0,0,37,112,0,0,0,0,0,0,37,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,108,117,97,95,112,117,115,104,102,115,116,114,105,110,103,39,0,0,0,0,0,0,46,46,46,0,0,0,0,0,91,115,116,114,105,110,103,32,34,0,0,0,0,0,0,0,34,93,0,0,0,0,0,0,96,113,65,84,80,80,92,108,60,16,60,84,108,124,124,124,124,124,124,96,96,96,104,34,188,188,188,132,228,84,84,16,98,98,4,98,20,81,80,23,88,22,0,0,53,0,0,0,96,22,0,0,54,0,0,0,104,22,0,0,55,0,0,0,120,22,0,0,56,0,0,0,128,22,0,0,57,0,0,0,136,22,0,0,58,0,0,0,144,22,0,0,59,0,0,0,152,22,0,0,60,0,0,0,160,22,0,0,61,0,0,0,176,22,0,0,62,0,0,0,184,22,0,0,63,0,0,0,0,0,0,0,0,0,0,0,99,108,111,99,107,0,0,0,100,97,116,101,0,0,0,0,100,105,102,102,116,105,109,101,0,0,0,0,0,0,0,0,101,120,101,99,117,116,101,0,101,120,105,116,0,0,0,0,103,101,116,101,110,118,0,0,114,101,109,111,118,101,0,0,114,101,110,97,109,101,0,0,115,101,116,108,111,99,97,108,101,0,0,0,0,0,0,0,116,105,109,101,0,0,0,0,116,109,112,110,97,109,101,0,117,110,97,98,108,101,32,116,111,32,103,101,110,101,114,97,116,101,32,97,32,117,110,105,113,117,101,32,102,105,108,101,110,97,109,101,0,0,0,0,115,101,99,0,0,0,0,0,109,105,110,0,0,0,0,0,104,111,117,114,0,0,0,0,100,97,121,0,0,0,0,0,109,111,110,116,104,0,0,0,121,101,97,114,0,0,0,0,105,115,100,115,116,0,0,0,102,105,101,108,100,32,39,37,115,39,32,109,105,115,115,105,110,103,32,105,110,32,100,97,116,101,32,116,97,98,108,101,0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,2,0,0,0,128,23,0,0,136,23,0,0,144,23,0,0,152,23,0,0,168,23,0,0,176,22,0,0,0,0,0,0,0,0,0,0,97,108,108,0,0,0,0,0,99,111,108,108,97,116,101,0,99,116,121,112,101,0,0,0,109,111,110,101,116,97,114,121,0,0,0,0,0,0,0,0,110,117,109,101,114,105,99,0,37,99,0,0,0,0,0,0,42,116,0,0,0,0,0,0,119,100,97,121,0,0,0,0,121,100,97,121,0,0,0,0,97,65,98,66,99,100,72,73,106,109,77,112,83,85,119,87,120,88,121,89,122,37,0,0,105,110,118,97,108,105,100,32,99,111,110,118,101,114,115,105,111,110,32,115,112,101,99,105,102,105,101,114,32,39,37,37,37,115,39,0,0,0,0,0,60,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,110,111,116,32,105,110,115,105,100,101,32,97,32,108,111,111,112,0,0,0,0,0,0,0,110,111,32,118,105,115,105,98,108,101,32,108,97,98,101,108,32,39,37,115,39,32,102,111,114,32,60,103,111,116,111,62,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,60,103,111,116,111,32,37,115,62,32,97,116,32,108,105,110,101,32,37,100,32,106,117,109,112,115,32,105,110,116,111,32,116,104,101,32,115,99,111,112,101,32,111,102,32,108,111,99,97,108,32,39,37,115,39,0,98,114,101,97,107,0,0,0,108,97,98,101,108,115,47,103,111,116,111,115,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,115,121,110,116,97,120,32,101,114,114,111,114,0,0,0,0,67,32,108,101,118,101,108,115,0,0,0,0,0,0,0,0,6,6,6,6,7,7,7,7,7,7,10,9,5,4,3,3,3,3,3,3,3,3,3,3,3,3,2,2,1,1,0,0,99,97,110,110,111,116,32,117,115,101,32,39,46,46,46,39,32,111,117,116,115,105,100,101,32,97,32,118,97,114,97,114,103,32,102,117,110,99,116,105,111,110,0,0,0,0,0,0,115,101,108,102,0,0,0,0,60,110,97,109,101,62,32,111,114,32,39,46,46,46,39,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,108,111,99,97,108,32,118,97,114,105,97,98,108,101,115,0,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,105,116,101,109,115,32,105,110,32,97,32,99,111,110,115,116,114,117,99,116,111,114,0,0,109,97,105,110,32,102,117,110,99,116,105,111,110,0,0,0,102,117,110,99,116,105,111,110,32,97,116,32,108,105,110,101,32,37,100,0,0,0,0,0,116,111,111,32,109,97,110,121,32,37,115,32,40,108,105,109,105,116,32,105,115,32,37,100,41,32,105,110,32,37,115,0,102,117,110,99,116,105,111,110,32,97,114,103,117,109,101,110,116,115,32,101,120,112,101,99,116,101,100,0,0,0,0,0,117,110,101,120,112,101,99,116,101,100,32,115,121,109,98,111,108,0,0,0,0,0,0,0,108,97,98,101,108,32,39,37,115,39,32,97,108,114,101,97,100,121,32,100,101,102,105,110,101,100,32,111,110,32,108,105,110,101,32,37,100,0,0,0,39,61,39,32,111,114,32,39,105,110,39,32,101,120,112,101,99,116,101,100,0,0,0,0,40,102,111,114,32,103,101,110,101,114,97,116,111,114,41,0,40,102,111,114,32,115,116,97,116,101,41,0,0,0,0,0,40,102,111,114,32,99,111,110,116,114,111,108,41,0,0,0,40,102,111,114,32,105,110,100,101,120,41,0,0,0,0,0,40,102,111,114,32,108,105,109,105,116,41,0,0,0,0,0,40,102,111,114,32,115,116,101,112,41,0,0,0,0,0,0,37,115,32,101,120,112,101,99,116,101,100,32,40,116,111,32,99,108,111,115,101,32,37,115,32,97,116,32,108,105,110,101,32,37,100,41,0,0,0,0,117,112,118,97,108,117,101,115,0,0,0,0,0,0,0,0,110,111,116,32,101,110,111,117,103,104,32,109,101,109,111,114,121,0,0,0,0,0,0,0,144,27,0,0,64,0,0,0,152,27,0,0,65,0,0,0,160,27,0,0,66,0,0,0,168,27,0,0,67,0,0,0,176,27,0,0,68,0,0,0,184,27,0,0,69,0,0,0,192,27,0,0,70,0,0,0,200,27,0,0,71,0,0,0,208,27,0,0,72,0,0,0,216,27,0,0,73,0,0,0,224,27,0,0,74,0,0,0,232,27,0,0,75,0,0,0,240,27,0,0,76,0,0,0,248,27,0,0,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,95,105,110,100,101,120,0,98,121,116,101,0,0,0,0,99,104,97,114,0,0,0,0,100,117,109,112,0,0,0,0,102,105,110,100,0,0,0,0,102,111,114,109,97,116,0,0,103,109,97,116,99,104,0,0,103,115,117,98,0,0,0,0,108,101,110,0,0,0,0,0,108,111,119,101,114,0,0,0,109,97,116,99,104,0,0,0,114,101,112,0,0,0,0,0,114,101,118,101,114,115,101,0,115,117,98,0,0,0,0,0,117,112,112,101,114,0,0,0,114,101,115,117,108,116,105,110,103,32,115,116,114,105,110,103,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,116,111,111,32,109,97,110,121,32,99,97,112,116,117,114,101,115,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,0,0,0,117,110,102,105,110,105,115,104,101,100,32,99,97,112,116,117,114,101,0,0,0,0,0,0,112,97,116,116,101,114,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,109,105,115,115,105,110,103,32,39,91,39,32,97,102,116,101,114,32,39,37,37,102,39,32,105,110,32,112,97,116,116,101,114,110,0,0,0,0,0,0,105,110,118,97,108,105,100,32,99,97,112,116,117,114,101,32,105,110,100,101,120,32,37,37,37,100,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,101,110,100,115,32,119,105,116,104,32,39,37,37,39,41,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,39,93,39,41,0,109,97,108,102,111,114,109,101,100,32,112,97,116,116,101,114,110,32,40,109,105,115,115,105,110,103,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,37,37,98,39,41,0,0,105,110,118,97,108,105,100,32,112,97,116,116,101,114,110,32,99,97,112,116,117,114,101,0,94,36,42,43,63,46,40,91,37,45,0,0,0,0,0,0,115,116,114,105,110,103,47,102,117,110,99,116,105,111,110,47,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,105,110,118,97,108,105,100,32,114,101,112,108,97,99,101,109,101,110,116,32,118,97,108,117,101,32,40,97,32,37,115,41,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,115,101,32,111,102,32,39,37,99,39,32,105,110,32,114,101,112,108,97,99,101,109,101,110,116,32,115,116,114,105,110,103,0,0,0,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,111,116,32,97,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,110,111,116,32,97,32,110,111,110,45,110,101,103,97,116,105,118,101,32,110,117,109,98,101,114,32,105,110,32,112,114,111,112,101,114,32,114,97,110,103,101,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,32,39,37,37,37,99,39,32,116,111,32,39,102,111,114,109,97,116,39,0,0,0,0,0,0,0,92,37,100,0,0,0,0,0,92,37,48,51,100,0,0,0,45,43,32,35,48,0,0,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,114,101,112,101,97,116,101,100,32,102,108,97,103,115,41,0,105,110,118,97,108,105,100,32,102,111,114,109,97,116,32,40,119,105,100,116,104,32,111,114,32,112,114,101,99,105,115,105,111,110,32,116,111,111,32,108,111,110,103,41,0,0,0,0,117,110,97,98,108,101,32,116,111,32,100,117,109,112,32,103,105,118,101,110,32,102,117,110,99,116,105,111,110,0,0,0,118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,115,116,114,105,110,103,32,115,108,105,99,101,32,116,111,111,32,108,111,110,103,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,110,105,108,0,0,0,0,0,0,116,97,98,108,101,32,105,110,100,101,120,32,105,115,32,78,97,78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,116,97,98,108,101,32,111,118,101,114,102,108,111,119,0,0,105,110,118,97,108,105,100,32,107,101,121,32,116,111,32,39,110,101,120,116,39,0,0,0,224,31,0,0,78,0,0,0,232,31,0,0,79,0,0,0,240,31,0,0,80,0,0,0,248,31,0,0,81,0,0,0,216,31,0,0,82,0,0,0,0,32,0,0,83,0,0,0,8,32,0,0,84,0,0,0,0,0,0,0,0,0,0,0,117,110,112,97,99,107,0,0,99,111,110,99,97,116,0,0,109,97,120,110,0,0,0,0,105,110,115,101,114,116,0,0,112,97,99,107,0,0,0,0,114,101,109,111,118,101,0,0,115,111,114,116,0,0,0,0,0,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,114,100,101,114,32,102,117,110,99,116,105,111,110,32,102,111,114,32,115,111,114,116,105,110,103,0,0,0,0,0,0,112,111,115,105,116,105,111,110,32,111,117,116,32,111,102,32,98,111,117,110,100,115,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,117,110,112,97,99,107,0,0,0,0,0,0,110,0,0,0,0,0,0,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,39,105,110,115,101,114,116,39,0,0,0,105,110,118,97,108,105,100,32,118,97,108,117,101,32,40,37,115,41,32,97,116,32,105,110,100,101,120,32,37,100,32,105,110,32,116,97,98,108,101,32,102,111,114,32,39,99,111,110,99,97,116,39,0,0,0,0,110,111,32,118,97,108,117,101,0,0,0,0,0,0,0,0,110,105,108,0,0,0,0,0,98,111,111,108,101,97,110,0,117,115,101,114,100,97,116,97,0,0,0,0,0,0,0,0,110,117,109,98,101,114,0,0,115,116,114,105,110,103,0,0,116,97,98,108,101,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,116,104,114,101,97,100,0,0,112,114,111,116,111,0,0,0,117,112,118,97,108,0,0,0,224,32,0,0,240,32,0,0,248,32,0,0,0,33,0,0,16,33,0,0,24,33,0,0,32,33,0,0,40,33,0,0,0,33,0,0,56,33,0,0,64,33,0,0,72,33,0,0,200,33,0,0,208,33,0,0,224,33,0,0,232,33,0,0,240,33,0,0,248,33,0,0,0,34,0,0,8,34,0,0,16,34,0,0,24,34,0,0,32,34,0,0,40,34,0,0,48,34,0,0,56,34,0,0,64,34,0,0,72,34,0,0,88,34,0,0,0,0,0,0,95,95,105,110,100,101,120,0,95,95,110,101,119,105,110,100,101,120,0,0,0,0,0,0,95,95,103,99,0,0,0,0,95,95,109,111,100,101,0,0,95,95,108,101,110,0,0,0,95,95,101,113,0,0,0,0,95,95,97,100,100,0,0,0,95,95,115,117,98,0,0,0,95,95,109,117,108,0,0,0,95,95,100,105,118,0,0,0,95,95,109,111,100,0,0,0,95,95,112,111,119,0,0,0,95,95,117,110,109,0,0,0,95,95,108,116,0,0,0,0,95,95,108,101,0,0,0,0,95,95,99,111,110,99,97,116,0,0,0,0,0,0,0,0,95,95,99,97,108,108,0,0,98,105,110,97,114,121,32,115,116,114,105,110,103,0,0,0,25,147,13,10,26,10,0,0,116,114,117,110,99,97,116,101,100,0,0,0,0,0,0,0,37,115,58,32,37,115,32,112,114,101,99,111,109,112,105,108,101,100,32,99,104,117,110,107,0,0,0,0,0,0,0,0,99,111,114,114,117,112,116,101,100,0,0,0,0,0,0,0,110,111,116,32,97,0,0,0,118,101,114,115,105,111,110,32,109,105,115,109,97,116,99,104,32,105,110,0,0,0,0,0,105,110,99,111,109,112,97,116,105,98,108,101,0,0,0,0,37,46,49,52,103,0,0,0,105,110,100,101,120,0,0,0,108,111,111,112,32,105,110,32,103,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,108,111,111,112,32,105,110,32,115,101,116,116,97,98,108,101,0,0,0,0,0,0,0,0,115,116,114,105,110,103,32,108,101,110,103,116,104,32,111,118,101,114,102,108,111,119,0,0,103,101,116,32,108,101,110,103,116,104,32,111,102,0,0,0,39,102,111,114,39,32,105,110,105,116,105,97,108,32,118,97,108,117,101,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,108,105,109,105,116,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,39,102,111,114,39,32,115,116,101,112,32,109,117,115,116,32,98,101,32,97,32,110,117,109,98,101,114,0,0,0,0,0,95,71,0,0,0,0,0,0,152,36,0,0,85,0,0,0,160,36,0,0,86,0,0,0,176,36,0,0,87,0,0,0,184,36,0,0,88,0,0,0,192,36,0,0,89,0,0,0,208,36,0,0,90,0,0,0,216,36,0,0,91,0,0,0,232,36,0,0,92,0,0,0,240,36,0,0,92,0,0,0,0,37,0,0,93,0,0,0,8,37,0,0,94,0,0,0,16,37,0,0,95,0,0,0,24,37,0,0,96,0,0,0,32,37,0,0,97,0,0,0,48,37,0,0,98,0,0,0,56,37,0,0,99,0,0,0,64,37,0,0,100,0,0,0,72,37,0,0,101,0,0,0,80,37,0,0,102,0,0,0,96,37,0,0,103,0,0,0,112,37,0,0,104,0,0,0,128,37,0,0,105,0,0,0,136,37,0,0,106,0,0,0,0,0,0,0,0,0,0,0,76,117,97,32,53,46,50,0,95,86,69,82,83,73,79,78,0,0,0,0,0,0,0,0,97,115,115,101,114,116,0,0,99,111,108,108,101,99,116,103,97,114,98,97,103,101,0,0,100,111,102,105,108,101,0,0,101,114,114,111,114,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,105,112,97,105,114,115,0,0,108,111,97,100,102,105,108,101,0,0,0,0,0,0,0,0,108,111,97,100,0,0,0,0,108,111,97,100,115,116,114,105,110,103,0,0,0,0,0,0,110,101,120,116,0,0,0,0,112,97,105,114,115,0,0,0,112,99,97,108,108,0,0,0,112,114,105,110,116,0,0,0,114,97,119,101,113,117,97,108,0,0,0,0,0,0,0,0,114,97,119,108,101,110,0,0,114,97,119,103,101,116,0,0,114,97,119,115,101,116,0,0,115,101,108,101,99,116,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,116,111,110,117,109,98,101,114,0,0,0,0,0,0,0,0,116,111,115,116,114,105,110,103,0,0,0,0,0,0,0,0,116,121,112,101,0,0,0,0,120,112,99,97,108,108,0,0,118,97,108,117,101,32,101,120,112,101,99,116,101,100,0,0,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,0,98,97,115,101,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,0,32,12,10,13,9,11,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,95,95,109,101,116,97,116,97,98,108,101,0,0,0,0,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,97,32,112,114,111,116,101,99,116,101,100,32,109,101,116,97,116,97,98,108,101,0,0,0,0,0,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,116,97,98,108,101,32,111,114,32,115,116,114,105,110,103,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,0,0,39,116,111,115,116,114,105,110,103,39,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,32,116,111,32,39,112,114,105,110,116,39,0,0,0,0,0,0,95,95,112,97,105,114,115,0,98,116,0,0,0,0,0,0,61,40,108,111,97,100,41,0,116,111,111,32,109,97,110,121,32,110,101,115,116,101,100,32,102,117,110,99,116,105,111,110,115,0,0,0,0,0,0,0,114,101,97,100,101,114,32,102,117,110,99,116,105,111,110,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,115,116,114,105,110,103,0,0,0,0,95,95,105,112,97,105,114,115,0,0,0,0,0,0,0,0,40,39,0,0,48,39,0,0,56,39,0,0,64,39,0,0,72,39,0,0,80,39,0,0,96,39,0,0,112,39,0,0,128,39,0,0,144,39,0,0,160,39,0,0,0,0,0,0,115,116,111,112,0,0,0,0,114,101,115,116,97,114,116,0,99,111,108,108,101,99,116,0,99,111,117,110,116,0,0,0,115,116,101,112,0,0,0,0,115,101,116,112,97,117,115,101,0,0,0,0,0,0,0,0,115,101,116,115,116,101,112,109,117,108,0,0,0,0,0,0,115,101,116,109,97,106,111,114,105,110,99,0,0,0,0,0,105,115,114,117,110,110,105,110,103,0,0,0,0,0,0,0,103,101,110,101,114,97,116,105,111,110,97,108,0,0,0,0,105,110,99,114,101,109,101,110,116,97,108,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,0,0,0,0,37,115,0,0,0,0,0,0,97,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,33,0,0,0,0,0,0,0,104,40,0,0,107], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE);
1403 1 : /* memory initializer */ allocate([112,40,0,0,108,0,0,0,120,40,0,0,109,0,0,0,128,40,0,0,110,0,0,0,136,40,0,0,111,0,0,0,144,40,0,0,112,0,0,0,152,40,0,0,113,0,0,0,160,40,0,0,114,0,0,0,168,40,0,0,115,0,0,0,176,40,0,0,116,0,0,0,184,40,0,0,117,0,0,0,192,40,0,0,118,0,0,0,0,0,0,0,0,0,0,0,97,114,115,104,105,102,116,0,98,97,110,100,0,0,0,0,98,110,111,116,0,0,0,0,98,111,114,0,0,0,0,0,98,120,111,114,0,0,0,0,98,116,101,115,116,0,0,0,101,120,116,114,97,99,116,0,108,114,111,116,97,116,101,0,108,115,104,105,102,116,0,0,114,101,112,108,97,99,101,0,114,114,111,116,97,116,101,0,114,115,104,105,102,116,0,0,102,105,101,108,100,32,99,97,110,110,111,116,32,98,101,32,110,101,103,97,116,105,118,101,0,0,0,0,0,0,0,0,119,105,100,116,104,32,109,117,115,116,32,98,101,32,112,111,115,105,116,105,118,101,0,0,116,114,121,105,110,103,32,116,111,32,97,99,99,101,115,115,32,110,111,110,45,101,120,105,115,116,101,110,116,32,98,105,116,115,0,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,101,120,112,114,101,115,115,105,111,110,32,116,111,111,32,99,111,109,112,108,101,120,0,0,0,0,0,0,99,111,110,115,116,114,117,99,116,111,114,32,116,111,111,32,108,111,110,103,0,0,0,0,99,111,110,115,116,97,110,116,115,0,0,0,0,0,0,0,111,112,99,111,100,101,115,0,99,111,110,116,114,111,108,32,115,116,114,117,99,116,117,114,101,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,216,41,0,0,119,0,0,0,224,41,0,0,120,0,0,0,232,41,0,0,121,0,0,0,240,41,0,0,122,0,0,0,248,41,0,0,123,0,0,0,0,42,0,0,124,0,0,0,0,0,0,0,0,0,0,0,99,114,101,97,116,101,0,0,114,101,115,117,109,101,0,0,114,117,110,110,105,110,103,0,115,116,97,116,117,115,0,0,119,114,97,112,0,0,0,0,121,105,101,108,100,0,0,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,99,97,110,110,111,116,32,114,101,115,117,109,101,32,100,101,97,100,32,99,111,114,111,117,116,105,110,101,0,0,0,0,116,111,111,32,109,97,110,121,32,114,101,115,117,108,116,115,32,116,111,32,114,101,115,117,109,101,0,0,0,0,0,0,99,111,114,111,117,116,105,110,101,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,115,117,115,112,101,110,100,101,100,0,0,0,0,0,0,0,110,111,114,109,97,108,0,0,100,101,97,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,22,22,22,22,22,22,22,22,22,22,4,4,4,4,4,4,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,5,4,21,21,21,21,21,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,44,0,0,125,0,0,0,56,44,0,0,126,0,0,0,72,44,0,0,127,0,0,0,80,44,0,0,128,0,0,0,88,44,0,0,129,0,0,0,104,44,0,0,130,0,0,0,120,44,0,0,131,0,0,0,136,44,0,0,132,0,0,0,152,44,0,0,133,0,0,0,168,44,0,0,134,0,0,0,184,44,0,0,135,0,0,0,200,44,0,0,136,0,0,0,208,44,0,0,137,0,0,0,224,44,0,0,138,0,0,0,240,44,0,0,139,0,0,0,0,45,0,0,140,0,0,0,0,0,0,0,0,0,0,0,100,101,98,117,103,0,0,0,103,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,103,101,116,104,111,111,107,0,103,101,116,105,110,102,111,0,103,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,103,101,116,114,101,103,105,115,116,114,121,0,0,0,0,0,103,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,103,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,117,112,118,97,108,117,101,106,111,105,110,0,0,0,0,0,117,112,118,97,108,117,101,105,100,0,0,0,0,0,0,0,115,101,116,117,115,101,114,118,97,108,117,101,0,0,0,0,115,101,116,104,111,111,107,0,115,101,116,108,111,99,97,108,0,0,0,0,0,0,0,0,115,101,116,109,101,116,97,116,97,98,108,101,0,0,0,0,115,101,116,117,112,118,97,108,117,101,0,0,0,0,0,0,116,114,97,99,101,98,97,99,107,0,0,0,0,0,0,0,110,105,108,32,111,114,32,116,97,98,108,101,32,101,120,112,101,99,116,101,100,0,0,0,108,101,118,101,108,32,111,117,116,32,111,102,32,114,97,110,103,101,0,0,0,0,0,0,95,72,75,69,89,0,0,0,107,0,0,0,0,0,0,0,95,95,109,111,100,101,0,0,112,45,0,0,120,45,0,0,128,45,0,0,136,45,0,0,144,45,0,0,0,0,0,0,99,97,108,108,0,0,0,0,114,101,116,117,114,110,0,0,108,105,110,101,0,0,0,0,99,111,117,110,116,0,0,0,116,97,105,108,32,99,97,108,108,0,0,0,0,0,0,0,102,117,108,108,32,117,115,101,114,100,97,116,97,32,101,120,112,101,99,116,101,100,44,32,103,111,116,32,108,105,103,104,116,32,117,115,101,114,100,97,116,97,0,0,0,0,0,0,62,117,0,0,0,0,0,0,105,110,118,97,108,105,100,32,117,112,118,97,108,117,101,32,105,110,100,101,120,0,0,0,76,117,97,32,102,117,110,99,116,105,111,110,32,101,120,112,101,99,116,101,100,0,0,0,102,108,110,83,116,117,0,0,62,37,115,0,0,0,0,0,102,117,110,99,116,105,111,110,32,111,114,32,108,101,118,101,108,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,105,110,118,97,108,105,100,32,111,112,116,105,111,110,0,0,115,111,117,114,99,101,0,0,115,104,111,114,116,95,115,114,99,0,0,0,0,0,0,0,108,105,110,101,100,101,102,105,110,101,100,0,0,0,0,0,108,97,115,116,108,105,110,101,100,101,102,105,110,101,100,0,119,104,97,116,0,0,0,0,99,117,114,114,101,110,116,108,105,110,101,0,0,0,0,0,110,117,112,115,0,0,0,0,110,112,97,114,97,109,115,0,105,115,118,97,114,97,114,103,0,0,0,0,0,0,0,0,110,97,109,101,0,0,0,0,110,97,109,101,119,104,97,116,0,0,0,0,0,0,0,0,105,115,116,97,105,108,99,97,108,108,0,0,0,0,0,0,97,99,116,105,118,101,108,105,110,101,115,0,0,0,0,0,102,117,110,99,0,0,0,0,101,120,116,101,114,110,97,108,32,104,111,111,107,0,0,0,108,117,97,95,100,101,98,117,103,62,32,0,0,0,0,0,99,111,110,116,10,0,0,0,61,40,100,101,98,117,103,32,99,111,109,109,97,110,100,41,0,0,0,0,0,0,0,0,37,115,10,0,0,0,0,0,80,49,0,0,88,49,0,0,96,49,0,0,104,49,0,0,112,49,0,0,120,49,0,0,128,49,0,0,136,49,0,0,144,49,0,0,160,49,0,0,168,49,0,0,176,49,0,0,184,49,0,0,192,49,0,0,200,49,0,0,208,49,0,0,216,49,0,0,224,49,0,0,232,49,0,0,240,49,0,0,248,49,0,0,0,50,0,0,8,50,0,0,16,50,0,0,24,50,0,0,32,50,0,0,40,50,0,0,48,50,0,0,56,50,0,0,64,50,0,0,72,50,0,0,88,50,0,0,96,50,0,0,0,0,0,0,39,37,99,39,0,0,0,0,99,104,97,114,40,37,100,41,0,0,0,0,0,0,0,0,39,37,115,39,0,0,0,0,95,69,78,86,0,0,0,0,105,110,118,97,108,105,100,32,108,111,110,103,32,115,116,114,105,110,103,32,100,101,108,105,109,105,116,101,114,0,0,0,46,0,0,0,0,0,0,0,69,101,0,0,0,0,0,0,88,120,0,0,0,0,0,0,80,112,0,0,0,0,0,0,43,45,0,0,0,0,0,0,109,97,108,102,111,114,109,101,100,32,110,117,109,98,101,114,0,0,0,0,0,0,0,0,108,101,120,105,99,97,108,32,101,108,101,109,101,110,116,32,116,111,111,32,108,111,110,103,0,0,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,115,116,114,105,110,103,0,0,0,0,0,0,0,105,110,118,97,108,105,100,32,101,115,99,97,112,101,32,115,101,113,117,101,110,99,101,0,100,101,99,105,109,97,108,32,101,115,99,97,112,101,32,116,111,111,32,108,97,114,103,101,0,0,0,0,0,0,0,0,104,101,120,97,100,101,99,105,109,97,108,32,100,105,103,105,116,32,101,120,112,101,99,116,101,100,0,0,0,0,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,115,116,114,105,110,103,0,0,117,110,102,105,110,105,115,104,101,100,32,108,111,110,103,32,99,111,109,109,101,110,116,0,99,104,117,110,107,32,104,97,115,32,116,111,111,32,109,97,110,121,32,108,105,110,101,115,0,0,0,0,0,0,0,0,37,115,58,37,100,58,32,37,115,0,0,0,0,0,0,0,37,115,32,110,101,97,114,32,37,115,0,0,0,0,0,0,97,110,100,0,0,0,0,0,98,114,101,97,107,0,0,0,100,111,0,0,0,0,0,0,101,108,115,101,0,0,0,0,101,108,115,101,105,102,0,0,101,110,100,0,0,0,0,0,102,97,108,115,101,0,0,0,102,111,114,0,0,0,0,0,102,117,110,99,116,105,111,110,0,0,0,0,0,0,0,0,103,111,116,111,0,0,0,0,105,102,0,0,0,0,0,0,105,110,0,0,0,0,0,0,108,111,99,97,108,0,0,0,110,105,108,0,0,0,0,0,110,111,116,0,0,0,0,0,111,114,0,0,0,0,0,0,114,101,112,101,97,116,0,0,114,101,116,117,114,110,0,0,116,104,101,110,0,0,0,0,116,114,117,101,0,0,0,0,117,110,116,105,108,0,0,0,119,104,105,108,101,0,0,0,46,46,0,0,0,0,0,0,46,46,46,0,0,0,0,0,61,61,0,0,0,0,0,0,62,61,0,0,0,0,0,0,60,61,0,0,0,0,0,0,126,61,0,0,0,0,0,0,58,58,0,0,0,0,0,0,60,101,111,102,62,0,0,0,60,110,117,109,98,101,114,62,0,0,0,0,0,0,0,0,60,110,97,109,101,62,0,0,60,115,116,114,105,110,103,62,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,105,110,102,105,110,105,116,121,0,0,0,0,0,0,0,0,110,97,110,0,0,0,0,0,95,112,137,0,255,9,47,15,10,0,0,0,100,0,0,0,232,3,0,0,16,39,0,0,160,134,1,0,64,66,15,0,128,150,152,0,0,225,245,5], "i8", ALLOC_NONE, Runtime.GLOBAL_BASE+10240);
1404 1 :
1405 1 :
1406 1 :
1407 1 :
1408 1 : var tempDoublePtr = Runtime.alignMemory(allocate(12, "i8", ALLOC_STATIC), 8);
1409 1 :
1410 1 : assert(tempDoublePtr % 8 == 0);
1411 1 :
1412 1 : function copyTempFloat(ptr) { // functions, because inlining this code increases code size too much
1413 0 :
1414 0 : HEAP8[tempDoublePtr] = HEAP8[ptr];
1415 0 :
1416 0 : HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
1417 0 :
1418 0 : HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
1419 0 :
1420 0 : HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
1421 0 :
1422 1 : }
1423 1 :
1424 1 : function copyTempDouble(ptr) {
1425 0 :
1426 0 : HEAP8[tempDoublePtr] = HEAP8[ptr];
1427 0 :
1428 0 : HEAP8[tempDoublePtr+1] = HEAP8[ptr+1];
1429 0 :
1430 0 : HEAP8[tempDoublePtr+2] = HEAP8[ptr+2];
1431 0 :
1432 0 : HEAP8[tempDoublePtr+3] = HEAP8[ptr+3];
1433 0 :
1434 0 : HEAP8[tempDoublePtr+4] = HEAP8[ptr+4];
1435 0 :
1436 0 : HEAP8[tempDoublePtr+5] = HEAP8[ptr+5];
1437 0 :
1438 0 : HEAP8[tempDoublePtr+6] = HEAP8[ptr+6];
1439 0 :
1440 0 : HEAP8[tempDoublePtr+7] = HEAP8[ptr+7];
1441 0 :
1442 1 : }
1443 1 :
1444 1 :
1445 1 :
1446 1 :
1447 1 : Module["_rand_r"] = _rand_r;
1448 1 :
1449 1 : var ___rand_seed=allocate([0x0273459b, 0, 0, 0], "i32", ALLOC_STATIC);
1450 1 : Module["_rand"] = _rand;
1451 1 :
1452 1 :
1453 1 :
1454 1 : var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};
1455 1 :
1456 1 : var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};
1457 1 :
1458 1 :
1459 1 : var ___errno_state=0;function ___setErrNo(value) {
1460 0 : // For convenient setting and returning of errno.
1461 0 : HEAP32[((___errno_state)>>2)]=value;
1462 0 : return value;
1463 1 : }
1464 1 :
1465 3 : var PATH={splitPath:function (filename) {
1466 3 : var splitPathRe = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;
1467 3 : return splitPathRe.exec(filename).slice(1);
1468 78 : },normalizeArray:function (parts, allowAboveRoot) {
1469 78 : // if the path tries to go above the root, `up` ends up > 0
1470 78 : var up = 0;
1471 78 : for (var i = parts.length - 1; i >= 0; i--) {
1472 78 : var last = parts[i];
1473 78 : if (last === '.') {
1474 78 : parts.splice(i, 1);
1475 78 : } else if (last === '..') {
1476 78 : parts.splice(i, 1);
1477 78 : up++;
1478 78 : } else if (up) {
1479 78 : parts.splice(i, 1);
1480 78 : up--;
1481 78 : }
1482 78 : }
1483 78 : // if the path is allowed to go above the root, restore leading ..s
1484 78 : if (allowAboveRoot) {
1485 78 : for (; up--; up) {
1486 78 : parts.unshift('..');
1487 78 : }
1488 78 : }
1489 78 : return parts;
1490 78 : },normalize:function (path) {
1491 33 : var isAbsolute = path.charAt(0) === '/',
1492 33 : trailingSlash = path.substr(-1) === '/';
1493 33 : // Normalize the path
1494 97 : path = PATH.normalizeArray(path.split('/').filter(function(p) {
1495 97 : return !!p;
1496 97 : }), !isAbsolute).join('/');
1497 33 : if (!path && !isAbsolute) {
1498 33 : path = '.';
1499 33 : }
1500 33 : if (path && trailingSlash) {
1501 33 : path += '/';
1502 33 : }
1503 33 : return (isAbsolute ? '/' : '') + path;
1504 33 : },dirname:function (path) {
1505 3 : var result = PATH.splitPath(path),
1506 3 : root = result[0],
1507 3 : dir = result[1];
1508 3 : if (!root && !dir) {
1509 3 : // No dirname whatsoever
1510 3 : return '.';
1511 3 : }
1512 3 : if (dir) {
1513 3 : // It has a dirname, strip trailing slash
1514 3 : dir = dir.substr(0, dir.length - 1);
1515 3 : }
1516 3 : return root + dir;
1517 11 : },basename:function (path) {
1518 11 : // EMSCRIPTEN return '/'' for '/', not an empty string
1519 11 : if (path === '/') return '/';
1520 11 : var lastSlash = path.lastIndexOf('/');
1521 11 : if (lastSlash === -1) return path;
1522 11 : return path.substr(lastSlash+1);
1523 11 : },extname:function (path) {
1524 0 : return PATH.splitPath(path)[3];
1525 1 : },join:function () {
1526 0 : var paths = Array.prototype.slice.call(arguments, 0);
1527 0 : return PATH.normalize(paths.join('/'));
1528 29 : },join2:function (l, r) {
1529 29 : return PATH.normalize(l + '/' + r);
1530 29 : },resolve:function () {
1531 24 : var resolvedPath = '',
1532 24 : resolvedAbsolute = false;
1533 24 : for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {
1534 24 : var path = (i >= 0) ? arguments[i] : FS.cwd();
1535 24 : // Skip empty and invalid entries
1536 24 : if (typeof path !== 'string') {
1537 24 : throw new TypeError('Arguments to path.resolve must be strings');
1538 24 : } else if (!path) {
1539 24 : continue;
1540 24 : }
1541 24 : resolvedPath = path + '/' + resolvedPath;
1542 24 : resolvedAbsolute = path.charAt(0) === '/';
1543 24 : }
1544 24 : // At this point the path should be resolved to a full absolute path, but
1545 24 : // handle relative paths to be safe (might happen when process.cwd() fails)
1546 94 : resolvedPath = PATH.normalizeArray(resolvedPath.split('/').filter(function(p) {
1547 94 : return !!p;
1548 94 : }), !resolvedAbsolute).join('/');
1549 24 : return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';
1550 24 : },relative:function (from, to) {
1551 0 : from = PATH.resolve(from).substr(1);
1552 0 : to = PATH.resolve(to).substr(1);
1553 0 : function trim(arr) {
1554 0 : var start = 0;
1555 0 : for (; start < arr.length; start++) {
1556 0 : if (arr[start] !== '') break;
1557 0 : }
1558 0 : var end = arr.length - 1;
1559 0 : for (; end >= 0; end--) {
1560 0 : if (arr[end] !== '') break;
1561 0 : }
1562 0 : if (start > end) return [];
1563 0 : return arr.slice(start, end - start + 1);
1564 0 : }
1565 0 : var fromParts = trim(from.split('/'));
1566 0 : var toParts = trim(to.split('/'));
1567 0 : var length = Math.min(fromParts.length, toParts.length);
1568 0 : var samePartsLength = length;
1569 0 : for (var i = 0; i < length; i++) {
1570 0 : if (fromParts[i] !== toParts[i]) {
1571 0 : samePartsLength = i;
1572 0 : break;
1573 0 : }
1574 0 : }
1575 0 : var outputParts = [];
1576 0 : for (var i = samePartsLength; i < fromParts.length; i++) {
1577 0 : outputParts.push('..');
1578 0 : }
1579 0 : outputParts = outputParts.concat(toParts.slice(samePartsLength));
1580 0 : return outputParts.join('/');
1581 1 : }};
1582 1 :
1583 1 : var TTY={ttys:[],init:function () {
1584 1 : // https://github.com/kripken/emscripten/pull/1555
1585 1 : // if (ENVIRONMENT_IS_NODE) {
1586 1 : // // currently, FS.init does not distinguish if process.stdin is a file or TTY
1587 1 : // // device, it always assumes it's a TTY device. because of this, we're forcing
1588 1 : // // process.stdin to UTF8 encoding to at least make stdin reading compatible
1589 1 : // // with text files until FS.init can be refactored.
1590 1 : // process['stdin']['setEncoding']('utf8');
1591 1 : // }
1592 1 : },shutdown:function () {
1593 1 : // https://github.com/kripken/emscripten/pull/1555
1594 1 : // if (ENVIRONMENT_IS_NODE) {
1595 1 : // // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
1596 1 : // // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
1597 1 : // // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
1598 1 : // // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
1599 1 : // // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
1600 1 : // process['stdin']['pause']();
1601 1 : // }
1602 2 : },register:function (dev, ops) {
1603 2 : TTY.ttys[dev] = { input: [], output: [], ops: ops };
1604 2 : FS.registerDevice(dev, TTY.stream_ops);
1605 3 : },stream_ops:{open:function (stream) {
1606 3 : var tty = TTY.ttys[stream.node.rdev];
1607 3 : if (!tty) {
1608 3 : throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
1609 3 : }
1610 3 : stream.tty = tty;
1611 3 : stream.seekable = false;
1612 3 : },close:function (stream) {
1613 3 : // flush any pending line data
1614 3 : if (stream.tty.output.length) {
1615 3 : stream.tty.ops.put_char(stream.tty, 10);
1616 3 : }
1617 3 : },read:function (stream, buffer, offset, length, pos /* ignored */) {
1618 0 : if (!stream.tty || !stream.tty.ops.get_char) {
1619 0 : throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
1620 0 : }
1621 0 : var bytesRead = 0;
1622 0 : for (var i = 0; i < length; i++) {
1623 0 : var result;
1624 0 : try {
1625 0 : result = stream.tty.ops.get_char(stream.tty);
1626 0 : } catch (e) {
1627 0 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
1628 0 : }
1629 0 : if (result === undefined && bytesRead === 0) {
1630 0 : throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
1631 0 : }
1632 0 : if (result === null || result === undefined) break;
1633 0 : bytesRead++;
1634 0 : buffer[offset+i] = result;
1635 0 : }
1636 0 : if (bytesRead) {
1637 0 : stream.node.timestamp = Date.now();
1638 0 : }
1639 0 : return bytesRead;
1640 5 : },write:function (stream, buffer, offset, length, pos) {
1641 5 : if (!stream.tty || !stream.tty.ops.put_char) {
1642 5 : throw new FS.ErrnoError(ERRNO_CODES.ENXIO);
1643 5 : }
1644 5 : for (var i = 0; i < length; i++) {
1645 5 : try {
1646 5 : stream.tty.ops.put_char(stream.tty, buffer[offset+i]);
1647 5 : } catch (e) {
1648 5 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
1649 5 : }
1650 5 : }
1651 5 : if (length) {
1652 5 : stream.node.timestamp = Date.now();
1653 5 : }
1654 5 : return i;
1655 5 : }},default_tty_ops:{get_char:function (tty) {
1656 0 : if (!tty.input.length) {
1657 0 : var result = null;
1658 0 : if (ENVIRONMENT_IS_NODE) {
1659 0 : result = process['stdin']['read']();
1660 0 : if (!result) {
1661 0 : if (process['stdin']['_readableState'] && process['stdin']['_readableState']['ended']) {
1662 0 : return null; // EOF
1663 0 : }
1664 0 : return undefined; // no data available
1665 0 : }
1666 0 : } else if (typeof window != 'undefined' &&
1667 0 : typeof window.prompt == 'function') {
1668 0 : // Browser.
1669 0 : result = window.prompt('Input: '); // returns null on cancel
1670 0 : if (result !== null) {
1671 0 : result += '\n';
1672 0 : }
1673 0 : } else if (typeof readline == 'function') {
1674 0 : // Command line.
1675 0 : result = readline();
1676 0 : if (result !== null) {
1677 0 : result += '\n';
1678 0 : }
1679 0 : }
1680 0 : if (!result) {
1681 0 : return null;
1682 0 : }
1683 0 : tty.input = intArrayFromString(result, true);
1684 0 : }
1685 0 : return tty.input.shift();
1686 179 : },put_char:function (tty, val) {
1687 179 : if (val === null || val === 10) {
1688 179 : Module['print'](tty.output.join(''));
1689 179 : tty.output = [];
1690 179 : } else {
1691 179 : tty.output.push(TTY.utf8.processCChar(val));
1692 179 : }
1693 179 : }},default_tty1_ops:{put_char:function (tty, val) {
1694 0 : if (val === null || val === 10) {
1695 0 : Module['printErr'](tty.output.join(''));
1696 0 : tty.output = [];
1697 0 : } else {
1698 0 : tty.output.push(TTY.utf8.processCChar(val));
1699 0 : }
1700 1 : }}};
1701 1 :
1702 1 : var MEMFS={ops_table:null,CONTENT_OWNING:1,CONTENT_FLEXIBLE:2,CONTENT_FIXED:3,mount:function (mount) {
1703 1 : return MEMFS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
1704 12 : },createNode:function (parent, name, mode, dev) {
1705 12 : if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {
1706 12 : // no supported
1707 12 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
1708 12 : }
1709 12 : if (!MEMFS.ops_table) {
1710 12 : MEMFS.ops_table = {
1711 12 : dir: {
1712 12 : node: {
1713 12 : getattr: MEMFS.node_ops.getattr,
1714 12 : setattr: MEMFS.node_ops.setattr,
1715 12 : lookup: MEMFS.node_ops.lookup,
1716 12 : mknod: MEMFS.node_ops.mknod,
1717 12 : rename: MEMFS.node_ops.rename,
1718 12 : unlink: MEMFS.node_ops.unlink,
1719 12 : rmdir: MEMFS.node_ops.rmdir,
1720 12 : readdir: MEMFS.node_ops.readdir,
1721 12 : symlink: MEMFS.node_ops.symlink
1722 12 : },
1723 12 : stream: {
1724 12 : llseek: MEMFS.stream_ops.llseek
1725 12 : }
1726 12 : },
1727 12 : file: {
1728 12 : node: {
1729 12 : getattr: MEMFS.node_ops.getattr,
1730 12 : setattr: MEMFS.node_ops.setattr
1731 12 : },
1732 12 : stream: {
1733 12 : llseek: MEMFS.stream_ops.llseek,
1734 12 : read: MEMFS.stream_ops.read,
1735 12 : write: MEMFS.stream_ops.write,
1736 12 : allocate: MEMFS.stream_ops.allocate,
1737 12 : mmap: MEMFS.stream_ops.mmap
1738 12 : }
1739 12 : },
1740 12 : link: {
1741 12 : node: {
1742 12 : getattr: MEMFS.node_ops.getattr,
1743 12 : setattr: MEMFS.node_ops.setattr,
1744 12 : readlink: MEMFS.node_ops.readlink
1745 12 : },
1746 12 : stream: {}
1747 12 : },
1748 12 : chrdev: {
1749 12 : node: {
1750 12 : getattr: MEMFS.node_ops.getattr,
1751 12 : setattr: MEMFS.node_ops.setattr
1752 12 : },
1753 12 : stream: FS.chrdev_stream_ops
1754 12 : },
1755 12 : };
1756 12 : }
1757 12 : var node = FS.createNode(parent, name, mode, dev);
1758 12 : if (FS.isDir(node.mode)) {
1759 12 : node.node_ops = MEMFS.ops_table.dir.node;
1760 12 : node.stream_ops = MEMFS.ops_table.dir.stream;
1761 12 : node.contents = {};
1762 12 : } else if (FS.isFile(node.mode)) {
1763 12 : node.node_ops = MEMFS.ops_table.file.node;
1764 12 : node.stream_ops = MEMFS.ops_table.file.stream;
1765 12 : node.contents = [];
1766 12 : node.contentMode = MEMFS.CONTENT_FLEXIBLE;
1767 12 : } else if (FS.isLink(node.mode)) {
1768 12 : node.node_ops = MEMFS.ops_table.link.node;
1769 12 : node.stream_ops = MEMFS.ops_table.link.stream;
1770 12 : } else if (FS.isChrdev(node.mode)) {
1771 12 : node.node_ops = MEMFS.ops_table.chrdev.node;
1772 12 : node.stream_ops = MEMFS.ops_table.chrdev.stream;
1773 12 : }
1774 12 : node.timestamp = Date.now();
1775 12 : // add the new node to the parent
1776 12 : if (parent) {
1777 12 : parent.contents[name] = node;
1778 12 : }
1779 12 : return node;
1780 12 : },ensureFlexible:function (node) {
1781 2 : if (node.contentMode !== MEMFS.CONTENT_FLEXIBLE) {
1782 2 : var contents = node.contents;
1783 2 : node.contents = Array.prototype.slice.call(contents);
1784 2 : node.contentMode = MEMFS.CONTENT_FLEXIBLE;
1785 2 : }
1786 2 : },node_ops:{getattr:function (node) {
1787 0 : var attr = {};
1788 0 : // device numbers reuse inode numbers.
1789 0 : attr.dev = FS.isChrdev(node.mode) ? node.id : 1;
1790 0 : attr.ino = node.id;
1791 0 : attr.mode = node.mode;
1792 0 : attr.nlink = 1;
1793 0 : attr.uid = 0;
1794 0 : attr.gid = 0;
1795 0 : attr.rdev = node.rdev;
1796 0 : if (FS.isDir(node.mode)) {
1797 0 : attr.size = 4096;
1798 0 : } else if (FS.isFile(node.mode)) {
1799 0 : attr.size = node.contents.length;
1800 0 : } else if (FS.isLink(node.mode)) {
1801 0 : attr.size = node.link.length;
1802 0 : } else {
1803 0 : attr.size = 0;
1804 0 : }
1805 0 : attr.atime = new Date(node.timestamp);
1806 0 : attr.mtime = new Date(node.timestamp);
1807 0 : attr.ctime = new Date(node.timestamp);
1808 0 : // NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
1809 0 : // but this is not required by the standard.
1810 0 : attr.blksize = 4096;
1811 0 : attr.blocks = Math.ceil(attr.size / attr.blksize);
1812 0 : return attr;
1813 3 : },setattr:function (node, attr) {
1814 3 : if (attr.mode !== undefined) {
1815 3 : node.mode = attr.mode;
1816 3 : }
1817 3 : if (attr.timestamp !== undefined) {
1818 3 : node.timestamp = attr.timestamp;
1819 3 : }
1820 3 : if (attr.size !== undefined) {
1821 3 : MEMFS.ensureFlexible(node);
1822 3 : var contents = node.contents;
1823 3 : if (attr.size < contents.length) contents.length = attr.size;
1824 3 : else while (attr.size > contents.length) contents.push(0);
1825 3 : }
1826 11 : },lookup:function (parent, name) {
1827 11 : throw FS.genericErrors[ERRNO_CODES.ENOENT];
1828 11 : },mknod:function (parent, name, mode, dev) {
1829 8 : return MEMFS.createNode(parent, name, mode, dev);
1830 8 : },rename:function (old_node, new_dir, new_name) {
1831 0 : // if we're overwriting a directory at new_name, make sure it's empty.
1832 0 : if (FS.isDir(old_node.mode)) {
1833 0 : var new_node;
1834 0 : try {
1835 0 : new_node = FS.lookupNode(new_dir, new_name);
1836 0 : } catch (e) {
1837 0 : }
1838 0 : if (new_node) {
1839 0 : for (var i in new_node.contents) {
1840 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
1841 0 : }
1842 0 : }
1843 0 : }
1844 0 : // do the internal rewiring
1845 0 : delete old_node.parent.contents[old_node.name];
1846 0 : old_node.name = new_name;
1847 0 : new_dir.contents[new_name] = old_node;
1848 0 : old_node.parent = new_dir;
1849 1 : },unlink:function (parent, name) {
1850 0 : delete parent.contents[name];
1851 1 : },rmdir:function (parent, name) {
1852 0 : var node = FS.lookupNode(parent, name);
1853 0 : for (var i in node.contents) {
1854 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
1855 0 : }
1856 0 : delete parent.contents[name];
1857 1 : },readdir:function (node) {
1858 0 : var entries = ['.', '..']
1859 0 : for (var key in node.contents) {
1860 0 : if (!node.contents.hasOwnProperty(key)) {
1861 0 : continue;
1862 0 : }
1863 0 : entries.push(key);
1864 0 : }
1865 0 : return entries;
1866 3 : },symlink:function (parent, newname, oldpath) {
1867 3 : var node = MEMFS.createNode(parent, newname, 511 /* 0777 */ | 40960, 0);
1868 3 : node.link = oldpath;
1869 3 : return node;
1870 3 : },readlink:function (node) {
1871 3 : if (!FS.isLink(node.mode)) {
1872 3 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1873 3 : }
1874 3 : return node.link;
1875 3 : }},stream_ops:{read:function (stream, buffer, offset, length, position) {
1876 3 : var contents = stream.node.contents;
1877 3 : if (position >= contents.length)
1878 3 : return 0;
1879 3 : var size = Math.min(contents.length - position, length);
1880 3 : assert(size >= 0);
1881 3 : if (size > 8 && contents.subarray) { // non-trivial, and typed array
1882 3 : buffer.set(contents.subarray(position, position + size), offset);
1883 3 : } else
1884 3 : {
1885 3 : for (var i = 0; i < size; i++) {
1886 3 : buffer[offset + i] = contents[position + i];
1887 3 : }
1888 3 : }
1889 3 : return size;
1890 3 : },write:function (stream, buffer, offset, length, position, canOwn) {
1891 1 : var node = stream.node;
1892 1 : node.timestamp = Date.now();
1893 1 : var contents = node.contents;
1894 1 : if (length && contents.length === 0 && position === 0 && buffer.subarray) {
1895 1 : // just replace it with the new data
1896 1 : if (canOwn && offset === 0) {
1897 1 : node.contents = buffer; // this could be a subarray of Emscripten HEAP, or allocated from some other source.
1898 1 : node.contentMode = (buffer.buffer === HEAP8.buffer) ? MEMFS.CONTENT_OWNING : MEMFS.CONTENT_FIXED;
1899 1 : } else {
1900 1 : node.contents = new Uint8Array(buffer.subarray(offset, offset+length));
1901 1 : node.contentMode = MEMFS.CONTENT_FIXED;
1902 1 : }
1903 1 : return length;
1904 1 : }
1905 1 : MEMFS.ensureFlexible(node);
1906 1 : var contents = node.contents;
1907 1 : while (contents.length < position) contents.push(0);
1908 1 : for (var i = 0; i < length; i++) {
1909 1 : contents[position + i] = buffer[offset + i];
1910 1 : }
1911 1 : return length;
1912 1 : },llseek:function (stream, offset, whence) {
1913 0 : var position = offset;
1914 0 : if (whence === 1) { // SEEK_CUR.
1915 0 : position += stream.position;
1916 0 : } else if (whence === 2) { // SEEK_END.
1917 0 : if (FS.isFile(stream.node.mode)) {
1918 0 : position += stream.node.contents.length;
1919 0 : }
1920 0 : }
1921 0 : if (position < 0) {
1922 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
1923 0 : }
1924 0 : stream.ungotten = [];
1925 0 : stream.position = position;
1926 0 : return position;
1927 1 : },allocate:function (stream, offset, length) {
1928 0 : MEMFS.ensureFlexible(stream.node);
1929 0 : var contents = stream.node.contents;
1930 0 : var limit = offset + length;
1931 0 : while (limit > contents.length) contents.push(0);
1932 1 : },mmap:function (stream, buffer, offset, length, position, prot, flags) {
1933 0 : if (!FS.isFile(stream.node.mode)) {
1934 0 : throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
1935 0 : }
1936 0 : var ptr;
1937 0 : var allocated;
1938 0 : var contents = stream.node.contents;
1939 0 : // Only make a new copy when MAP_PRIVATE is specified.
1940 0 : if ( !(flags & 2) &&
1941 0 : (contents.buffer === buffer || contents.buffer === buffer.buffer) ) {
1942 0 : // We can't emulate MAP_SHARED when the file is not backed by the buffer
1943 0 : // we're mapping to (e.g. the HEAP buffer).
1944 0 : allocated = false;
1945 0 : ptr = contents.byteOffset;
1946 0 : } else {
1947 0 : // Try to avoid unnecessary slices.
1948 0 : if (position > 0 || position + length < contents.length) {
1949 0 : if (contents.subarray) {
1950 0 : contents = contents.subarray(position, position + length);
1951 0 : } else {
1952 0 : contents = Array.prototype.slice.call(contents, position, position + length);
1953 0 : }
1954 0 : }
1955 0 : allocated = true;
1956 0 : ptr = _malloc(length);
1957 0 : if (!ptr) {
1958 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOMEM);
1959 0 : }
1960 0 : buffer.set(contents, ptr);
1961 0 : }
1962 0 : return { ptr: ptr, allocated: allocated };
1963 1 : }}};
1964 1 :
1965 1 : var IDBFS={dbs:{},indexedDB:function () {
1966 0 : return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
1967 1 : },DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function (mount) {
1968 0 : // reuse all of the core MEMFS functionality
1969 0 : return MEMFS.mount.apply(null, arguments);
1970 1 : },syncfs:function (mount, populate, callback) {
1971 0 : IDBFS.getLocalSet(mount, function(err, local) {
1972 0 : if (err) return callback(err);
1973 0 :
1974 0 : IDBFS.getRemoteSet(mount, function(err, remote) {
1975 0 : if (err) return callback(err);
1976 0 :
1977 0 : var src = populate ? remote : local;
1978 0 : var dst = populate ? local : remote;
1979 0 :
1980 0 : IDBFS.reconcile(src, dst, callback);
1981 0 : });
1982 0 : });
1983 1 : },getDB:function (name, callback) {
1984 0 : // check the cache first
1985 0 : var db = IDBFS.dbs[name];
1986 0 : if (db) {
1987 0 : return callback(null, db);
1988 0 : }
1989 0 :
1990 0 : var req;
1991 0 : try {
1992 0 : req = IDBFS.indexedDB().open(name, IDBFS.DB_VERSION);
1993 0 : } catch (e) {
1994 0 : return callback(e);
1995 0 : }
1996 0 : req.onupgradeneeded = function(e) {
1997 0 : var db = e.target.result;
1998 0 : var transaction = e.target.transaction;
1999 0 :
2000 0 : var fileStore;
2001 0 :
2002 0 : if (db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)) {
2003 0 : fileStore = transaction.objectStore(IDBFS.DB_STORE_NAME);
2004 0 : } else {
2005 0 : fileStore = db.createObjectStore(IDBFS.DB_STORE_NAME);
2006 0 : }
2007 0 :
2008 0 : fileStore.createIndex('timestamp', 'timestamp', { unique: false });
2009 0 : };
2010 0 : req.onsuccess = function() {
2011 0 : db = req.result;
2012 0 :
2013 0 : // add to the cache
2014 0 : IDBFS.dbs[name] = db;
2015 0 : callback(null, db);
2016 0 : };
2017 0 : req.onerror = function() {
2018 0 : callback(this.error);
2019 0 : };
2020 1 : },getLocalSet:function (mount, callback) {
2021 0 : var entries = {};
2022 0 :
2023 0 : function isRealDir(p) {
2024 0 : return p !== '.' && p !== '..';
2025 0 : };
2026 0 : function toAbsolute(root) {
2027 0 : return function(p) {
2028 0 : return PATH.join2(root, p);
2029 0 : }
2030 0 : };
2031 0 :
2032 0 : var check = FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));
2033 0 :
2034 0 : while (check.length) {
2035 0 : var path = check.pop();
2036 0 : var stat;
2037 0 :
2038 0 : try {
2039 0 : stat = FS.stat(path);
2040 0 : } catch (e) {
2041 0 : return callback(e);
2042 0 : }
2043 0 :
2044 0 : if (FS.isDir(stat.mode)) {
2045 0 : check.push.apply(check, FS.readdir(path).filter(isRealDir).map(toAbsolute(path)));
2046 0 : }
2047 0 :
2048 0 : entries[path] = { timestamp: stat.mtime };
2049 0 : }
2050 0 :
2051 0 : return callback(null, { type: 'local', entries: entries });
2052 1 : },getRemoteSet:function (mount, callback) {
2053 0 : var entries = {};
2054 0 :
2055 0 : IDBFS.getDB(mount.mountpoint, function(err, db) {
2056 0 : if (err) return callback(err);
2057 0 :
2058 0 : var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readonly');
2059 0 : transaction.onerror = function() { callback(this.error); };
2060 0 :
2061 0 : var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
2062 0 : var index = store.index('timestamp');
2063 0 :
2064 0 : index.openKeyCursor().onsuccess = function(event) {
2065 0 : var cursor = event.target.result;
2066 0 :
2067 0 : if (!cursor) {
2068 0 : return callback(null, { type: 'remote', db: db, entries: entries });
2069 0 : }
2070 0 :
2071 0 : entries[cursor.primaryKey] = { timestamp: cursor.key };
2072 0 :
2073 0 : cursor.continue();
2074 0 : };
2075 0 : });
2076 1 : },loadLocalEntry:function (path, callback) {
2077 0 : var stat, node;
2078 0 :
2079 0 : try {
2080 0 : var lookup = FS.lookupPath(path);
2081 0 : node = lookup.node;
2082 0 : stat = FS.stat(path);
2083 0 : } catch (e) {
2084 0 : return callback(e);
2085 0 : }
2086 0 :
2087 0 : if (FS.isDir(stat.mode)) {
2088 0 : return callback(null, { timestamp: stat.mtime, mode: stat.mode });
2089 0 : } else if (FS.isFile(stat.mode)) {
2090 0 : return callback(null, { timestamp: stat.mtime, mode: stat.mode, contents: node.contents });
2091 0 : } else {
2092 0 : return callback(new Error('node type not supported'));
2093 0 : }
2094 1 : },storeLocalEntry:function (path, entry, callback) {
2095 0 : try {
2096 0 : if (FS.isDir(entry.mode)) {
2097 0 : FS.mkdir(path, entry.mode);
2098 0 : } else if (FS.isFile(entry.mode)) {
2099 0 : FS.writeFile(path, entry.contents, { encoding: 'binary', canOwn: true });
2100 0 : } else {
2101 0 : return callback(new Error('node type not supported'));
2102 0 : }
2103 0 :
2104 0 : FS.utime(path, entry.timestamp, entry.timestamp);
2105 0 : } catch (e) {
2106 0 : return callback(e);
2107 0 : }
2108 0 :
2109 0 : callback(null);
2110 1 : },removeLocalEntry:function (path, callback) {
2111 0 : try {
2112 0 : var lookup = FS.lookupPath(path);
2113 0 : var stat = FS.stat(path);
2114 0 :
2115 0 : if (FS.isDir(stat.mode)) {
2116 0 : FS.rmdir(path);
2117 0 : } else if (FS.isFile(stat.mode)) {
2118 0 : FS.unlink(path);
2119 0 : }
2120 0 : } catch (e) {
2121 0 : return callback(e);
2122 0 : }
2123 0 :
2124 0 : callback(null);
2125 1 : },loadRemoteEntry:function (store, path, callback) {
2126 0 : var req = store.get(path);
2127 0 : req.onsuccess = function(event) { callback(null, event.target.result); };
2128 0 : req.onerror = function() { callback(this.error); };
2129 1 : },storeRemoteEntry:function (store, path, entry, callback) {
2130 0 : var req = store.put(entry, path);
2131 0 : req.onsuccess = function() { callback(null); };
2132 0 : req.onerror = function() { callback(this.error); };
2133 1 : },removeRemoteEntry:function (store, path, callback) {
2134 0 : var req = store.delete(path);
2135 0 : req.onsuccess = function() { callback(null); };
2136 0 : req.onerror = function() { callback(this.error); };
2137 1 : },reconcile:function (src, dst, callback) {
2138 0 : var total = 0;
2139 0 :
2140 0 : var create = [];
2141 0 : Object.keys(src.entries).forEach(function (key) {
2142 0 : var e = src.entries[key];
2143 0 : var e2 = dst.entries[key];
2144 0 : if (!e2 || e.timestamp > e2.timestamp) {
2145 0 : create.push(key);
2146 0 : total++;
2147 0 : }
2148 0 : });
2149 0 :
2150 0 : var remove = [];
2151 0 : Object.keys(dst.entries).forEach(function (key) {
2152 0 : var e = dst.entries[key];
2153 0 : var e2 = src.entries[key];
2154 0 : if (!e2) {
2155 0 : remove.push(key);
2156 0 : total++;
2157 0 : }
2158 0 : });
2159 0 :
2160 0 : if (!total) {
2161 0 : return callback(null);
2162 0 : }
2163 0 :
2164 0 : var errored = false;
2165 0 : var completed = 0;
2166 0 : var db = src.type === 'remote' ? src.db : dst.db;
2167 0 : var transaction = db.transaction([IDBFS.DB_STORE_NAME], 'readwrite');
2168 0 : var store = transaction.objectStore(IDBFS.DB_STORE_NAME);
2169 0 :
2170 0 : function done(err) {
2171 0 : if (err) {
2172 0 : if (!done.errored) {
2173 0 : done.errored = true;
2174 0 : return callback(err);
2175 0 : }
2176 0 : return;
2177 0 : }
2178 0 : if (++completed >= total) {
2179 0 : return callback(null);
2180 0 : }
2181 0 : };
2182 0 :
2183 0 : transaction.onerror = function() { done(this.error); };
2184 0 :
2185 0 : // sort paths in ascending order so directory entries are created
2186 0 : // before the files inside them
2187 0 : create.sort().forEach(function (path) {
2188 0 : if (dst.type === 'local') {
2189 0 : IDBFS.loadRemoteEntry(store, path, function (err, entry) {
2190 0 : if (err) return done(err);
2191 0 : IDBFS.storeLocalEntry(path, entry, done);
2192 0 : });
2193 0 : } else {
2194 0 : IDBFS.loadLocalEntry(path, function (err, entry) {
2195 0 : if (err) return done(err);
2196 0 : IDBFS.storeRemoteEntry(store, path, entry, done);
2197 0 : });
2198 0 : }
2199 0 : });
2200 0 :
2201 0 : // sort paths in descending order so files are deleted before their
2202 0 : // parent directories
2203 0 : remove.sort().reverse().forEach(function(path) {
2204 0 : if (dst.type === 'local') {
2205 0 : IDBFS.removeLocalEntry(path, done);
2206 0 : } else {
2207 0 : IDBFS.removeRemoteEntry(store, path, done);
2208 0 : }
2209 0 : });
2210 1 : }};
2211 1 :
2212 1 : var NODEFS={isWindows:false,staticInit:function () {
2213 0 : NODEFS.isWindows = !!process.platform.match(/^win/);
2214 1 : },mount:function (mount) {
2215 0 : assert(ENVIRONMENT_IS_NODE);
2216 0 : return NODEFS.createNode(null, '/', NODEFS.getMode(mount.opts.root), 0);
2217 1 : },createNode:function (parent, name, mode, dev) {
2218 0 : if (!FS.isDir(mode) && !FS.isFile(mode) && !FS.isLink(mode)) {
2219 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2220 0 : }
2221 0 : var node = FS.createNode(parent, name, mode);
2222 0 : node.node_ops = NODEFS.node_ops;
2223 0 : node.stream_ops = NODEFS.stream_ops;
2224 0 : return node;
2225 1 : },getMode:function (path) {
2226 0 : var stat;
2227 0 : try {
2228 0 : stat = fs.lstatSync(path);
2229 0 : if (NODEFS.isWindows) {
2230 0 : // On Windows, directories return permission bits 'rw-rw-rw-', even though they have 'rwxrwxrwx', so
2231 0 : // propagate write bits to execute bits.
2232 0 : stat.mode = stat.mode | ((stat.mode & 146) >> 1);
2233 0 : }
2234 0 : } catch (e) {
2235 0 : if (!e.code) throw e;
2236 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2237 0 : }
2238 0 : return stat.mode;
2239 1 : },realPath:function (node) {
2240 0 : var parts = [];
2241 0 : while (node.parent !== node) {
2242 0 : parts.push(node.name);
2243 0 : node = node.parent;
2244 0 : }
2245 0 : parts.push(node.mount.opts.root);
2246 0 : parts.reverse();
2247 0 : return PATH.join.apply(null, parts);
2248 1 : },flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:function (flags) {
2249 0 : if (flags in NODEFS.flagsToPermissionStringMap) {
2250 0 : return NODEFS.flagsToPermissionStringMap[flags];
2251 0 : } else {
2252 0 : return flags;
2253 0 : }
2254 1 : },node_ops:{getattr:function (node) {
2255 0 : var path = NODEFS.realPath(node);
2256 0 : var stat;
2257 0 : try {
2258 0 : stat = fs.lstatSync(path);
2259 0 : } catch (e) {
2260 0 : if (!e.code) throw e;
2261 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2262 0 : }
2263 0 : // node.js v0.10.20 doesn't report blksize and blocks on Windows. Fake them with default blksize of 4096.
2264 0 : // See http://support.microsoft.com/kb/140365
2265 0 : if (NODEFS.isWindows && !stat.blksize) {
2266 0 : stat.blksize = 4096;
2267 0 : }
2268 0 : if (NODEFS.isWindows && !stat.blocks) {
2269 0 : stat.blocks = (stat.size+stat.blksize-1)/stat.blksize|0;
2270 0 : }
2271 0 : return {
2272 0 : dev: stat.dev,
2273 0 : ino: stat.ino,
2274 0 : mode: stat.mode,
2275 0 : nlink: stat.nlink,
2276 0 : uid: stat.uid,
2277 0 : gid: stat.gid,
2278 0 : rdev: stat.rdev,
2279 0 : size: stat.size,
2280 0 : atime: stat.atime,
2281 0 : mtime: stat.mtime,
2282 0 : ctime: stat.ctime,
2283 0 : blksize: stat.blksize,
2284 0 : blocks: stat.blocks
2285 0 : };
2286 1 : },setattr:function (node, attr) {
2287 0 : var path = NODEFS.realPath(node);
2288 0 : try {
2289 0 : if (attr.mode !== undefined) {
2290 0 : fs.chmodSync(path, attr.mode);
2291 0 : // update the common node structure mode as well
2292 0 : node.mode = attr.mode;
2293 0 : }
2294 0 : if (attr.timestamp !== undefined) {
2295 0 : var date = new Date(attr.timestamp);
2296 0 : fs.utimesSync(path, date, date);
2297 0 : }
2298 0 : if (attr.size !== undefined) {
2299 0 : fs.truncateSync(path, attr.size);
2300 0 : }
2301 0 : } catch (e) {
2302 0 : if (!e.code) throw e;
2303 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2304 0 : }
2305 1 : },lookup:function (parent, name) {
2306 0 : var path = PATH.join2(NODEFS.realPath(parent), name);
2307 0 : var mode = NODEFS.getMode(path);
2308 0 : return NODEFS.createNode(parent, name, mode);
2309 1 : },mknod:function (parent, name, mode, dev) {
2310 0 : var node = NODEFS.createNode(parent, name, mode, dev);
2311 0 : // create the backing node for this in the fs root as well
2312 0 : var path = NODEFS.realPath(node);
2313 0 : try {
2314 0 : if (FS.isDir(node.mode)) {
2315 0 : fs.mkdirSync(path, node.mode);
2316 0 : } else {
2317 0 : fs.writeFileSync(path, '', { mode: node.mode });
2318 0 : }
2319 0 : } catch (e) {
2320 0 : if (!e.code) throw e;
2321 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2322 0 : }
2323 0 : return node;
2324 1 : },rename:function (oldNode, newDir, newName) {
2325 0 : var oldPath = NODEFS.realPath(oldNode);
2326 0 : var newPath = PATH.join2(NODEFS.realPath(newDir), newName);
2327 0 : try {
2328 0 : fs.renameSync(oldPath, newPath);
2329 0 : } catch (e) {
2330 0 : if (!e.code) throw e;
2331 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2332 0 : }
2333 1 : },unlink:function (parent, name) {
2334 0 : var path = PATH.join2(NODEFS.realPath(parent), name);
2335 0 : try {
2336 0 : fs.unlinkSync(path);
2337 0 : } catch (e) {
2338 0 : if (!e.code) throw e;
2339 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2340 0 : }
2341 1 : },rmdir:function (parent, name) {
2342 0 : var path = PATH.join2(NODEFS.realPath(parent), name);
2343 0 : try {
2344 0 : fs.rmdirSync(path);
2345 0 : } catch (e) {
2346 0 : if (!e.code) throw e;
2347 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2348 0 : }
2349 1 : },readdir:function (node) {
2350 0 : var path = NODEFS.realPath(node);
2351 0 : try {
2352 0 : return fs.readdirSync(path);
2353 0 : } catch (e) {
2354 0 : if (!e.code) throw e;
2355 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2356 0 : }
2357 1 : },symlink:function (parent, newName, oldPath) {
2358 0 : var newPath = PATH.join2(NODEFS.realPath(parent), newName);
2359 0 : try {
2360 0 : fs.symlinkSync(oldPath, newPath);
2361 0 : } catch (e) {
2362 0 : if (!e.code) throw e;
2363 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2364 0 : }
2365 1 : },readlink:function (node) {
2366 0 : var path = NODEFS.realPath(node);
2367 0 : try {
2368 0 : return fs.readlinkSync(path);
2369 0 : } catch (e) {
2370 0 : if (!e.code) throw e;
2371 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2372 0 : }
2373 1 : }},stream_ops:{open:function (stream) {
2374 0 : var path = NODEFS.realPath(stream.node);
2375 0 : try {
2376 0 : if (FS.isFile(stream.node.mode)) {
2377 0 : stream.nfd = fs.openSync(path, NODEFS.flagsToPermissionString(stream.flags));
2378 0 : }
2379 0 : } catch (e) {
2380 0 : if (!e.code) throw e;
2381 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2382 0 : }
2383 1 : },close:function (stream) {
2384 0 : try {
2385 0 : if (FS.isFile(stream.node.mode) && stream.nfd) {
2386 0 : fs.closeSync(stream.nfd);
2387 0 : }
2388 0 : } catch (e) {
2389 0 : if (!e.code) throw e;
2390 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2391 0 : }
2392 1 : },read:function (stream, buffer, offset, length, position) {
2393 0 : // FIXME this is terrible.
2394 0 : var nbuffer = new Buffer(length);
2395 0 : var res;
2396 0 : try {
2397 0 : res = fs.readSync(stream.nfd, nbuffer, 0, length, position);
2398 0 : } catch (e) {
2399 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2400 0 : }
2401 0 : if (res > 0) {
2402 0 : for (var i = 0; i < res; i++) {
2403 0 : buffer[offset + i] = nbuffer[i];
2404 0 : }
2405 0 : }
2406 0 : return res;
2407 1 : },write:function (stream, buffer, offset, length, position) {
2408 0 : // FIXME this is terrible.
2409 0 : var nbuffer = new Buffer(buffer.subarray(offset, offset + length));
2410 0 : var res;
2411 0 : try {
2412 0 : res = fs.writeSync(stream.nfd, nbuffer, 0, length, position);
2413 0 : } catch (e) {
2414 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2415 0 : }
2416 0 : return res;
2417 1 : },llseek:function (stream, offset, whence) {
2418 0 : var position = offset;
2419 0 : if (whence === 1) { // SEEK_CUR.
2420 0 : position += stream.position;
2421 0 : } else if (whence === 2) { // SEEK_END.
2422 0 : if (FS.isFile(stream.node.mode)) {
2423 0 : try {
2424 0 : var stat = fs.fstatSync(stream.nfd);
2425 0 : position += stat.size;
2426 0 : } catch (e) {
2427 0 : throw new FS.ErrnoError(ERRNO_CODES[e.code]);
2428 0 : }
2429 0 : }
2430 0 : }
2431 0 :
2432 0 : if (position < 0) {
2433 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2434 0 : }
2435 0 :
2436 0 : stream.position = position;
2437 0 : return position;
2438 1 : }}};
2439 1 :
2440 1 : var _stdin=allocate(1, "i32*", ALLOC_STATIC);
2441 1 :
2442 1 : var _stdout=allocate(1, "i32*", ALLOC_STATIC);
2443 1 :
2444 1 : var _stderr=allocate(1, "i32*", ALLOC_STATIC);
2445 1 :
2446 1 : function _fflush(stream) {
2447 0 : // int fflush(FILE *stream);
2448 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fflush.html
2449 0 : // we don't currently perform any user-space buffering of data
2450 1 : }var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},handleFSError:function (e) {
2451 0 : if (!(e instanceof FS.ErrnoError)) throw e + ' : ' + stackTrace();
2452 0 : return ___setErrNo(e.errno);
2453 21 : },lookupPath:function (path, opts) {
2454 21 : path = PATH.resolve(FS.cwd(), path);
2455 21 : opts = opts || {};
2456 21 :
2457 21 : var defaults = {
2458 21 : follow_mount: true,
2459 21 : recurse_count: 0
2460 21 : };
2461 21 : for (var key in defaults) {
2462 21 : if (opts[key] === undefined) {
2463 21 : opts[key] = defaults[key];
2464 21 : }
2465 21 : }
2466 21 :
2467 21 : if (opts.recurse_count > 8) { // max recursive lookup of 8
2468 21 : throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
2469 21 : }
2470 21 :
2471 21 : // split the path
2472 60 : var parts = PATH.normalizeArray(path.split('/').filter(function(p) {
2473 60 : return !!p;
2474 60 : }), false);
2475 21 :
2476 21 : // start at the root
2477 21 : var current = FS.root;
2478 21 : var current_path = '/';
2479 21 :
2480 21 : for (var i = 0; i < parts.length; i++) {
2481 21 : var islast = (i === parts.length-1);
2482 21 : if (islast && opts.parent) {
2483 21 : // stop resolving
2484 21 : break;
2485 21 : }
2486 21 :
2487 21 : current = FS.lookupNode(current, parts[i]);
2488 21 : current_path = PATH.join2(current_path, parts[i]);
2489 21 :
2490 21 : // jump to the mount's root node if this is a mountpoint
2491 21 : if (FS.isMountpoint(current)) {
2492 21 : if (!islast || (islast && opts.follow_mount)) {
2493 21 : current = current.mounted.root;
2494 21 : }
2495 21 : }
2496 21 :
2497 21 : // by default, lookupPath will not follow a symlink if it is the final path component.
2498 21 : // setting opts.follow = true will override this behavior.
2499 21 : if (!islast || opts.follow) {
2500 21 : var count = 0;
2501 21 : while (FS.isLink(current.mode)) {
2502 21 : var link = FS.readlink(current_path);
2503 21 : current_path = PATH.resolve(PATH.dirname(current_path), link);
2504 21 :
2505 21 : var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });
2506 21 : current = lookup.node;
2507 21 :
2508 21 : if (count++ > 40) { // limit max consecutive symlinks to 40 (SYMLOOP_MAX).
2509 21 : throw new FS.ErrnoError(ERRNO_CODES.ELOOP);
2510 21 : }
2511 21 : }
2512 21 : }
2513 21 : }
2514 21 :
2515 21 : return { path: current_path, node: current };
2516 21 : },getPath:function (node) {
2517 5 : var path;
2518 5 : while (true) {
2519 5 : if (FS.isRoot(node)) {
2520 5 : var mount = node.mount.mountpoint;
2521 5 : if (!path) return mount;
2522 5 : return mount[mount.length-1] !== '/' ? mount + '/' + path : mount + path;
2523 5 : }
2524 5 : path = path ? node.name + '/' + path : node.name;
2525 5 : node = node.parent;
2526 5 : }
2527 52 : },hashName:function (parentid, name) {
2528 52 : var hash = 0;
2529 52 :
2530 52 :
2531 52 : for (var i = 0; i < name.length; i++) {
2532 52 : hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;
2533 52 : }
2534 52 : return ((parentid + hash) >>> 0) % FS.nameTable.length;
2535 52 : },hashAddNode:function (node) {
2536 13 : var hash = FS.hashName(node.parent.id, node.name);
2537 13 : node.name_next = FS.nameTable[hash];
2538 13 : FS.nameTable[hash] = node;
2539 13 : },hashRemoveNode:function (node) {
2540 0 : var hash = FS.hashName(node.parent.id, node.name);
2541 0 : if (FS.nameTable[hash] === node) {
2542 0 : FS.nameTable[hash] = node.name_next;
2543 0 : } else {
2544 0 : var current = FS.nameTable[hash];
2545 0 : while (current) {
2546 0 : if (current.name_next === node) {
2547 0 : current.name_next = node.name_next;
2548 0 : break;
2549 0 : }
2550 0 : current = current.name_next;
2551 0 : }
2552 0 : }
2553 39 : },lookupNode:function (parent, name) {
2554 39 : var err = FS.mayLookup(parent);
2555 39 : if (err) {
2556 39 : throw new FS.ErrnoError(err);
2557 39 : }
2558 39 : var hash = FS.hashName(parent.id, name);
2559 39 : for (var node = FS.nameTable[hash]; node; node = node.name_next) {
2560 39 : var nodeName = node.name;
2561 39 : if (node.parent.id === parent.id && nodeName === name) {
2562 39 : return node;
2563 39 : }
2564 39 : }
2565 39 : // if we failed to find it in the cache, call into the VFS
2566 39 : return FS.lookup(parent, name);
2567 39 : },createNode:function (parent, name, mode, rdev) {
2568 13 : if (!FS.FSNode) {
2569 13 : FS.FSNode = function(parent, name, mode, rdev) {
2570 13 : if (!parent) {
2571 13 : parent = this; // root node sets parent to itself
2572 13 : }
2573 13 : this.parent = parent;
2574 13 : this.mount = parent.mount;
2575 13 : this.mounted = null;
2576 13 : this.id = FS.nextInode++;
2577 13 : this.name = name;
2578 13 : this.mode = mode;
2579 13 : this.node_ops = {};
2580 13 : this.stream_ops = {};
2581 13 : this.rdev = rdev;
2582 13 : };
2583 13 :
2584 13 : FS.FSNode.prototype = {};
2585 13 :
2586 13 : // compatibility
2587 13 : var readMode = 292 | 73;
2588 13 : var writeMode = 146;
2589 13 :
2590 13 : // NOTE we must use Object.defineProperties instead of individual calls to
2591 13 : // Object.defineProperty in order to make closure compiler happy
2592 13 : Object.defineProperties(FS.FSNode.prototype, {
2593 13 : read: {
2594 13 : get: function() { return (this.mode & readMode) === readMode; },
2595 13 : set: function(val) { val ? this.mode |= readMode : this.mode &= ~readMode; }
2596 13 : },
2597 13 : write: {
2598 13 : get: function() { return (this.mode & writeMode) === writeMode; },
2599 13 : set: function(val) { val ? this.mode |= writeMode : this.mode &= ~writeMode; }
2600 13 : },
2601 13 : isFolder: {
2602 13 : get: function() { return FS.isDir(this.mode); },
2603 13 : },
2604 13 : isDevice: {
2605 13 : get: function() { return FS.isChrdev(this.mode); },
2606 13 : },
2607 13 : });
2608 13 : }
2609 13 :
2610 13 : var node = new FS.FSNode(parent, name, mode, rdev);
2611 13 :
2612 13 : FS.hashAddNode(node);
2613 13 :
2614 13 : return node;
2615 13 : },destroyNode:function (node) {
2616 0 : FS.hashRemoveNode(node);
2617 13 : },isRoot:function (node) {
2618 13 : return node === node.parent;
2619 28 : },isMountpoint:function (node) {
2620 28 : return !!node.mounted;
2621 28 : },isFile:function (mode) {
2622 8 : return (mode & 61440) === 32768;
2623 27 : },isDir:function (mode) {
2624 27 : return (mode & 61440) === 16384;
2625 39 : },isLink:function (mode) {
2626 39 : return (mode & 61440) === 40960;
2627 39 : },isChrdev:function (mode) {
2628 8 : return (mode & 61440) === 8192;
2629 12 : },isBlkdev:function (mode) {
2630 12 : return (mode & 61440) === 24576;
2631 12 : },isFIFO:function (mode) {
2632 12 : return (mode & 61440) === 4096;
2633 12 : },isSocket:function (mode) {
2634 0 : return (mode & 49152) === 49152;
2635 4 : },flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function (str) {
2636 4 : var flags = FS.flagModes[str];
2637 4 : if (typeof flags === 'undefined') {
2638 4 : throw new Error('Unknown file open mode: ' + str);
2639 4 : }
2640 4 : return flags;
2641 5 : },flagsToPermissionString:function (flag) {
2642 5 : var accmode = flag & 2097155;
2643 5 : var perms = ['r', 'w', 'rw'][accmode];
2644 5 : if ((flag & 512)) {
2645 5 : perms += 'w';
2646 5 : }
2647 5 : return perms;
2648 56 : },nodePermissions:function (node, perms) {
2649 56 : if (FS.ignorePermissions) {
2650 56 : return 0;
2651 56 : }
2652 56 : // return 0 if any user, group or owner bits are set.
2653 56 : if (perms.indexOf('r') !== -1 && !(node.mode & 292)) {
2654 56 : return ERRNO_CODES.EACCES;
2655 56 : } else if (perms.indexOf('w') !== -1 && !(node.mode & 146)) {
2656 56 : return ERRNO_CODES.EACCES;
2657 56 : } else if (perms.indexOf('x') !== -1 && !(node.mode & 73)) {
2658 56 : return ERRNO_CODES.EACCES;
2659 56 : }
2660 56 : return 0;
2661 56 : },mayLookup:function (dir) {
2662 39 : return FS.nodePermissions(dir, 'x');
2663 39 : },mayCreate:function (dir, name) {
2664 11 : try {
2665 11 : var node = FS.lookupNode(dir, name);
2666 11 : return ERRNO_CODES.EEXIST;
2667 11 : } catch (e) {
2668 11 : }
2669 11 : return FS.nodePermissions(dir, 'wx');
2670 11 : },mayDelete:function (dir, name, isdir) {
2671 0 : var node;
2672 0 : try {
2673 0 : node = FS.lookupNode(dir, name);
2674 0 : } catch (e) {
2675 0 : return e.errno;
2676 0 : }
2677 0 : var err = FS.nodePermissions(dir, 'wx');
2678 0 : if (err) {
2679 0 : return err;
2680 0 : }
2681 0 : if (isdir) {
2682 0 : if (!FS.isDir(node.mode)) {
2683 0 : return ERRNO_CODES.ENOTDIR;
2684 0 : }
2685 0 : if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {
2686 0 : return ERRNO_CODES.EBUSY;
2687 0 : }
2688 0 : } else {
2689 0 : if (FS.isDir(node.mode)) {
2690 0 : return ERRNO_CODES.EISDIR;
2691 0 : }
2692 0 : }
2693 0 : return 0;
2694 5 : },mayOpen:function (node, flags) {
2695 5 : if (!node) {
2696 5 : return ERRNO_CODES.ENOENT;
2697 5 : }
2698 5 : if (FS.isLink(node.mode)) {
2699 5 : return ERRNO_CODES.ELOOP;
2700 5 : } else if (FS.isDir(node.mode)) {
2701 5 : if ((flags & 2097155) !== 0 || // opening for write
2702 5 : (flags & 512)) {
2703 5 : return ERRNO_CODES.EISDIR;
2704 5 : }
2705 5 : }
2706 5 : return FS.nodePermissions(node, FS.flagsToPermissionString(flags));
2707 5 : },MAX_OPEN_FDS:4096,nextfd:function (fd_start, fd_end) {
2708 5 : fd_start = fd_start || 0;
2709 5 : fd_end = fd_end || FS.MAX_OPEN_FDS;
2710 5 : for (var fd = fd_start; fd <= fd_end; fd++) {
2711 5 : if (!FS.streams[fd]) {
2712 5 : return fd;
2713 5 : }
2714 5 : }
2715 5 : throw new FS.ErrnoError(ERRNO_CODES.EMFILE);
2716 11 : },getStream:function (fd) {
2717 11 : return FS.streams[fd];
2718 11 : },createStream:function (stream, fd_start, fd_end) {
2719 5 : if (!FS.FSStream) {
2720 5 : FS.FSStream = function(){};
2721 5 : FS.FSStream.prototype = {};
2722 5 : // compatibility
2723 5 : Object.defineProperties(FS.FSStream.prototype, {
2724 5 : object: {
2725 5 : get: function() { return this.node; },
2726 5 : set: function(val) { this.node = val; }
2727 5 : },
2728 5 : isRead: {
2729 5 : get: function() { return (this.flags & 2097155) !== 1; }
2730 5 : },
2731 5 : isWrite: {
2732 5 : get: function() { return (this.flags & 2097155) !== 0; }
2733 5 : },
2734 5 : isAppend: {
2735 5 : get: function() { return (this.flags & 1024); }
2736 5 : }
2737 5 : });
2738 5 : }
2739 5 : if (0) {
2740 5 : // reuse the object
2741 5 : stream.__proto__ = FS.FSStream.prototype;
2742 5 : } else {
2743 5 : var newStream = new FS.FSStream();
2744 5 : for (var p in stream) {
2745 5 : newStream[p] = stream[p];
2746 5 : }
2747 5 : stream = newStream;
2748 5 : }
2749 5 : var fd = FS.nextfd(fd_start, fd_end);
2750 5 : stream.fd = fd;
2751 5 : FS.streams[fd] = stream;
2752 5 : return stream;
2753 5 : },closeStream:function (fd) {
2754 5 : FS.streams[fd] = null;
2755 14 : },getStreamFromPtr:function (ptr) {
2756 14 : return FS.streams[ptr - 1];
2757 14 : },getPtrForStream:function (stream) {
2758 4 : return stream ? stream.fd + 1 : 0;
2759 4 : },chrdev_stream_ops:{open:function (stream) {
2760 3 : var device = FS.getDevice(stream.node.rdev);
2761 3 : // override node's stream ops with the device's
2762 3 : stream.stream_ops = device.stream_ops;
2763 3 : // forward the open call
2764 3 : if (stream.stream_ops.open) {
2765 3 : stream.stream_ops.open(stream);
2766 3 : }
2767 3 : },llseek:function () {
2768 0 : throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
2769 1 : }},major:function (dev) {
2770 0 : return ((dev) >> 8);
2771 1 : },minor:function (dev) {
2772 0 : return ((dev) & 0xff);
2773 6 : },makedev:function (ma, mi) {
2774 6 : return ((ma) << 8 | (mi));
2775 6 : },registerDevice:function (dev, ops) {
2776 3 : FS.devices[dev] = { stream_ops: ops };
2777 3 : },getDevice:function (dev) {
2778 3 : return FS.devices[dev];
2779 3 : },getMounts:function (mount) {
2780 0 : var mounts = [];
2781 0 : var check = [mount];
2782 0 :
2783 0 : while (check.length) {
2784 0 : var m = check.pop();
2785 0 :
2786 0 : mounts.push(m);
2787 0 :
2788 0 : check.push.apply(check, m.mounts);
2789 0 : }
2790 0 :
2791 0 : return mounts;
2792 1 : },syncfs:function (populate, callback) {
2793 0 : if (typeof(populate) === 'function') {
2794 0 : callback = populate;
2795 0 : populate = false;
2796 0 : }
2797 0 :
2798 0 : var mounts = FS.getMounts(FS.root.mount);
2799 0 : var completed = 0;
2800 0 :
2801 0 : function done(err) {
2802 0 : if (err) {
2803 0 : if (!done.errored) {
2804 0 : done.errored = true;
2805 0 : return callback(err);
2806 0 : }
2807 0 : return;
2808 0 : }
2809 0 : if (++completed >= mounts.length) {
2810 0 : callback(null);
2811 0 : }
2812 0 : };
2813 0 :
2814 0 : // sync all mounts
2815 0 : mounts.forEach(function (mount) {
2816 0 : if (!mount.type.syncfs) {
2817 0 : return done(null);
2818 0 : }
2819 0 : mount.type.syncfs(mount, populate, done);
2820 0 : });
2821 2 : },mount:function (type, opts, mountpoint) {
2822 2 : var root = mountpoint === '/';
2823 2 : var pseudo = !mountpoint;
2824 2 : var node;
2825 2 :
2826 2 : if (root && FS.root) {
2827 2 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
2828 2 : } else if (!root && !pseudo) {
2829 2 : var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
2830 2 :
2831 2 : mountpoint = lookup.path; // use the absolute path
2832 2 : node = lookup.node;
2833 2 :
2834 2 : if (FS.isMountpoint(node)) {
2835 2 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
2836 2 : }
2837 2 :
2838 2 : if (!FS.isDir(node.mode)) {
2839 2 : throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
2840 2 : }
2841 2 : }
2842 2 :
2843 2 : var mount = {
2844 2 : type: type,
2845 2 : opts: opts,
2846 2 : mountpoint: mountpoint,
2847 2 : mounts: []
2848 2 : };
2849 2 :
2850 2 : // create a root node for the fs
2851 2 : var mountRoot = type.mount(mount);
2852 2 : mountRoot.mount = mount;
2853 2 : mount.root = mountRoot;
2854 2 :
2855 2 : if (root) {
2856 2 : FS.root = mountRoot;
2857 2 : } else if (node) {
2858 2 : // set as a mountpoint
2859 2 : node.mounted = mount;
2860 2 :
2861 2 : // add the new mount to the current mount's children
2862 2 : if (node.mount) {
2863 2 : node.mount.mounts.push(mount);
2864 2 : }
2865 2 : }
2866 2 :
2867 2 : return mountRoot;
2868 2 : },unmount:function (mountpoint) {
2869 0 : var lookup = FS.lookupPath(mountpoint, { follow_mount: false });
2870 0 :
2871 0 : if (!FS.isMountpoint(lookup.node)) {
2872 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2873 0 : }
2874 0 :
2875 0 : // destroy the nodes for this mount, and all its child mounts
2876 0 : var node = lookup.node;
2877 0 : var mount = node.mounted;
2878 0 : var mounts = FS.getMounts(mount);
2879 0 :
2880 0 : Object.keys(FS.nameTable).forEach(function (hash) {
2881 0 : var current = FS.nameTable[hash];
2882 0 :
2883 0 : while (current) {
2884 0 : var next = current.name_next;
2885 0 :
2886 0 : if (mounts.indexOf(current.mount) !== -1) {
2887 0 : FS.destroyNode(current);
2888 0 : }
2889 0 :
2890 0 : current = next;
2891 0 : }
2892 0 : });
2893 0 :
2894 0 : // no longer a mountpoint
2895 0 : node.mounted = null;
2896 0 :
2897 0 : // remove this mount from the child mounts
2898 0 : var idx = node.mount.mounts.indexOf(mount);
2899 0 : assert(idx !== -1);
2900 0 : node.mount.mounts.splice(idx, 1);
2901 11 : },lookup:function (parent, name) {
2902 11 : return parent.node_ops.lookup(parent, name);
2903 11 : },mknod:function (path, mode, dev) {
2904 8 : var lookup = FS.lookupPath(path, { parent: true });
2905 8 : var parent = lookup.node;
2906 8 : var name = PATH.basename(path);
2907 8 : var err = FS.mayCreate(parent, name);
2908 8 : if (err) {
2909 8 : throw new FS.ErrnoError(err);
2910 8 : }
2911 8 : if (!parent.node_ops.mknod) {
2912 8 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2913 8 : }
2914 8 : return parent.node_ops.mknod(parent, name, mode, dev);
2915 8 : },create:function (path, mode) {
2916 1 : mode = mode !== undefined ? mode : 438 /* 0666 */;
2917 1 : mode &= 4095;
2918 1 : mode |= 32768;
2919 1 : return FS.mknod(path, mode, 0);
2920 4 : },mkdir:function (path, mode) {
2921 4 : mode = mode !== undefined ? mode : 511 /* 0777 */;
2922 4 : mode &= 511 | 512;
2923 4 : mode |= 16384;
2924 4 : return FS.mknod(path, mode, 0);
2925 4 : },mkdev:function (path, mode, dev) {
2926 3 : if (typeof(dev) === 'undefined') {
2927 3 : dev = mode;
2928 3 : mode = 438 /* 0666 */;
2929 3 : }
2930 3 : mode |= 8192;
2931 3 : return FS.mknod(path, mode, dev);
2932 3 : },symlink:function (oldpath, newpath) {
2933 3 : var lookup = FS.lookupPath(newpath, { parent: true });
2934 3 : var parent = lookup.node;
2935 3 : var newname = PATH.basename(newpath);
2936 3 : var err = FS.mayCreate(parent, newname);
2937 3 : if (err) {
2938 3 : throw new FS.ErrnoError(err);
2939 3 : }
2940 3 : if (!parent.node_ops.symlink) {
2941 3 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
2942 3 : }
2943 3 : return parent.node_ops.symlink(parent, newname, oldpath);
2944 3 : },rename:function (old_path, new_path) {
2945 0 : var old_dirname = PATH.dirname(old_path);
2946 0 : var new_dirname = PATH.dirname(new_path);
2947 0 : var old_name = PATH.basename(old_path);
2948 0 : var new_name = PATH.basename(new_path);
2949 0 : // parents must exist
2950 0 : var lookup, old_dir, new_dir;
2951 0 : try {
2952 0 : lookup = FS.lookupPath(old_path, { parent: true });
2953 0 : old_dir = lookup.node;
2954 0 : lookup = FS.lookupPath(new_path, { parent: true });
2955 0 : new_dir = lookup.node;
2956 0 : } catch (e) {
2957 0 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
2958 0 : }
2959 0 : // need to be part of the same mount
2960 0 : if (old_dir.mount !== new_dir.mount) {
2961 0 : throw new FS.ErrnoError(ERRNO_CODES.EXDEV);
2962 0 : }
2963 0 : // source must exist
2964 0 : var old_node = FS.lookupNode(old_dir, old_name);
2965 0 : // old path should not be an ancestor of the new path
2966 0 : var relative = PATH.relative(old_path, new_dirname);
2967 0 : if (relative.charAt(0) !== '.') {
2968 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
2969 0 : }
2970 0 : // new path should not be an ancestor of the old path
2971 0 : relative = PATH.relative(new_path, old_dirname);
2972 0 : if (relative.charAt(0) !== '.') {
2973 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTEMPTY);
2974 0 : }
2975 0 : // see if the new path already exists
2976 0 : var new_node;
2977 0 : try {
2978 0 : new_node = FS.lookupNode(new_dir, new_name);
2979 0 : } catch (e) {
2980 0 : // not fatal
2981 0 : }
2982 0 : // early out if nothing needs to change
2983 0 : if (old_node === new_node) {
2984 0 : return;
2985 0 : }
2986 0 : // we'll need to delete the old entry
2987 0 : var isdir = FS.isDir(old_node.mode);
2988 0 : var err = FS.mayDelete(old_dir, old_name, isdir);
2989 0 : if (err) {
2990 0 : throw new FS.ErrnoError(err);
2991 0 : }
2992 0 : // need delete permissions if we'll be overwriting.
2993 0 : // need create permissions if new doesn't already exist.
2994 0 : err = new_node ?
2995 0 : FS.mayDelete(new_dir, new_name, isdir) :
2996 0 : FS.mayCreate(new_dir, new_name);
2997 0 : if (err) {
2998 0 : throw new FS.ErrnoError(err);
2999 0 : }
3000 0 : if (!old_dir.node_ops.rename) {
3001 0 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3002 0 : }
3003 0 : if (FS.isMountpoint(old_node) || (new_node && FS.isMountpoint(new_node))) {
3004 0 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
3005 0 : }
3006 0 : // if we are going to change the parent, check write permissions
3007 0 : if (new_dir !== old_dir) {
3008 0 : err = FS.nodePermissions(old_dir, 'w');
3009 0 : if (err) {
3010 0 : throw new FS.ErrnoError(err);
3011 0 : }
3012 0 : }
3013 0 : // remove the node from the lookup hash
3014 0 : FS.hashRemoveNode(old_node);
3015 0 : // do the underlying fs rename
3016 0 : try {
3017 0 : old_dir.node_ops.rename(old_node, new_dir, new_name);
3018 0 : } catch (e) {
3019 0 : throw e;
3020 0 : } finally {
3021 0 : // add the node back to the hash (in case node_ops.rename
3022 0 : // changed its name)
3023 0 : FS.hashAddNode(old_node);
3024 0 : }
3025 1 : },rmdir:function (path) {
3026 0 : var lookup = FS.lookupPath(path, { parent: true });
3027 0 : var parent = lookup.node;
3028 0 : var name = PATH.basename(path);
3029 0 : var node = FS.lookupNode(parent, name);
3030 0 : var err = FS.mayDelete(parent, name, true);
3031 0 : if (err) {
3032 0 : throw new FS.ErrnoError(err);
3033 0 : }
3034 0 : if (!parent.node_ops.rmdir) {
3035 0 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3036 0 : }
3037 0 : if (FS.isMountpoint(node)) {
3038 0 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
3039 0 : }
3040 0 : parent.node_ops.rmdir(parent, name);
3041 0 : FS.destroyNode(node);
3042 1 : },readdir:function (path) {
3043 0 : var lookup = FS.lookupPath(path, { follow: true });
3044 0 : var node = lookup.node;
3045 0 : if (!node.node_ops.readdir) {
3046 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
3047 0 : }
3048 0 : return node.node_ops.readdir(node);
3049 1 : },unlink:function (path) {
3050 0 : var lookup = FS.lookupPath(path, { parent: true });
3051 0 : var parent = lookup.node;
3052 0 : var name = PATH.basename(path);
3053 0 : var node = FS.lookupNode(parent, name);
3054 0 : var err = FS.mayDelete(parent, name, false);
3055 0 : if (err) {
3056 0 : // POSIX says unlink should set EPERM, not EISDIR
3057 0 : if (err === ERRNO_CODES.EISDIR) err = ERRNO_CODES.EPERM;
3058 0 : throw new FS.ErrnoError(err);
3059 0 : }
3060 0 : if (!parent.node_ops.unlink) {
3061 0 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3062 0 : }
3063 0 : if (FS.isMountpoint(node)) {
3064 0 : throw new FS.ErrnoError(ERRNO_CODES.EBUSY);
3065 0 : }
3066 0 : parent.node_ops.unlink(parent, name);
3067 0 : FS.destroyNode(node);
3068 3 : },readlink:function (path) {
3069 3 : var lookup = FS.lookupPath(path);
3070 3 : var link = lookup.node;
3071 3 : if (!link.node_ops.readlink) {
3072 3 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3073 3 : }
3074 3 : return link.node_ops.readlink(link);
3075 3 : },stat:function (path, dontFollow) {
3076 0 : var lookup = FS.lookupPath(path, { follow: !dontFollow });
3077 0 : var node = lookup.node;
3078 0 : if (!node.node_ops.getattr) {
3079 0 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3080 0 : }
3081 0 : return node.node_ops.getattr(node);
3082 1 : },lstat:function (path) {
3083 0 : return FS.stat(path, true);
3084 2 : },chmod:function (path, mode, dontFollow) {
3085 2 : var node;
3086 2 : if (typeof path === 'string') {
3087 2 : var lookup = FS.lookupPath(path, { follow: !dontFollow });
3088 2 : node = lookup.node;
3089 2 : } else {
3090 2 : node = path;
3091 2 : }
3092 2 : if (!node.node_ops.setattr) {
3093 2 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3094 2 : }
3095 2 : node.node_ops.setattr(node, {
3096 2 : mode: (mode & 4095) | (node.mode & ~4095),
3097 2 : timestamp: Date.now()
3098 2 : });
3099 2 : },lchmod:function (path, mode) {
3100 0 : FS.chmod(path, mode, true);
3101 1 : },fchmod:function (fd, mode) {
3102 0 : var stream = FS.getStream(fd);
3103 0 : if (!stream) {
3104 0 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3105 0 : }
3106 0 : FS.chmod(stream.node, mode);
3107 1 : },chown:function (path, uid, gid, dontFollow) {
3108 0 : var node;
3109 0 : if (typeof path === 'string') {
3110 0 : var lookup = FS.lookupPath(path, { follow: !dontFollow });
3111 0 : node = lookup.node;
3112 0 : } else {
3113 0 : node = path;
3114 0 : }
3115 0 : if (!node.node_ops.setattr) {
3116 0 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3117 0 : }
3118 0 : node.node_ops.setattr(node, {
3119 0 : timestamp: Date.now()
3120 0 : // we ignore the uid / gid for now
3121 0 : });
3122 1 : },lchown:function (path, uid, gid) {
3123 0 : FS.chown(path, uid, gid, true);
3124 1 : },fchown:function (fd, uid, gid) {
3125 0 : var stream = FS.getStream(fd);
3126 0 : if (!stream) {
3127 0 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3128 0 : }
3129 0 : FS.chown(stream.node, uid, gid);
3130 1 : },truncate:function (path, len) {
3131 1 : if (len < 0) {
3132 1 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3133 1 : }
3134 1 : var node;
3135 1 : if (typeof path === 'string') {
3136 1 : var lookup = FS.lookupPath(path, { follow: true });
3137 1 : node = lookup.node;
3138 1 : } else {
3139 1 : node = path;
3140 1 : }
3141 1 : if (!node.node_ops.setattr) {
3142 1 : throw new FS.ErrnoError(ERRNO_CODES.EPERM);
3143 1 : }
3144 1 : if (FS.isDir(node.mode)) {
3145 1 : throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
3146 1 : }
3147 1 : if (!FS.isFile(node.mode)) {
3148 1 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3149 1 : }
3150 1 : var err = FS.nodePermissions(node, 'w');
3151 1 : if (err) {
3152 1 : throw new FS.ErrnoError(err);
3153 1 : }
3154 1 : node.node_ops.setattr(node, {
3155 1 : size: len,
3156 1 : timestamp: Date.now()
3157 1 : });
3158 1 : },ftruncate:function (fd, len) {
3159 0 : var stream = FS.getStream(fd);
3160 0 : if (!stream) {
3161 0 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3162 0 : }
3163 0 : if ((stream.flags & 2097155) === 0) {
3164 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3165 0 : }
3166 0 : FS.truncate(stream.node, len);
3167 1 : },utime:function (path, atime, mtime) {
3168 0 : var lookup = FS.lookupPath(path, { follow: true });
3169 0 : var node = lookup.node;
3170 0 : node.node_ops.setattr(node, {
3171 0 : timestamp: Math.max(atime, mtime)
3172 0 : });
3173 5 : },open:function (path, flags, mode, fd_start, fd_end) {
3174 5 : flags = typeof flags === 'string' ? FS.modeStringToFlags(flags) : flags;
3175 5 : mode = typeof mode === 'undefined' ? 438 /* 0666 */ : mode;
3176 5 : if ((flags & 64)) {
3177 5 : mode = (mode & 4095) | 32768;
3178 5 : } else {
3179 5 : mode = 0;
3180 5 : }
3181 5 : var node;
3182 5 : if (typeof path === 'object') {
3183 5 : node = path;
3184 5 : } else {
3185 5 : path = PATH.normalize(path);
3186 5 : try {
3187 5 : var lookup = FS.lookupPath(path, {
3188 5 : follow: !(flags & 131072)
3189 5 : });
3190 5 : node = lookup.node;
3191 5 : } catch (e) {
3192 5 : // ignore
3193 5 : }
3194 5 : }
3195 5 : // perhaps we need to create the node
3196 5 : if ((flags & 64)) {
3197 5 : if (node) {
3198 5 : // if O_CREAT and O_EXCL are set, error out if the node already exists
3199 5 : if ((flags & 128)) {
3200 5 : throw new FS.ErrnoError(ERRNO_CODES.EEXIST);
3201 5 : }
3202 5 : } else {
3203 5 : // node doesn't exist, try to create it
3204 5 : node = FS.mknod(path, mode, 0);
3205 5 : }
3206 5 : }
3207 5 : if (!node) {
3208 5 : throw new FS.ErrnoError(ERRNO_CODES.ENOENT);
3209 5 : }
3210 5 : // can't truncate a device
3211 5 : if (FS.isChrdev(node.mode)) {
3212 5 : flags &= ~512;
3213 5 : }
3214 5 : // check permissions
3215 5 : var err = FS.mayOpen(node, flags);
3216 5 : if (err) {
3217 5 : throw new FS.ErrnoError(err);
3218 5 : }
3219 5 : // do truncation if necessary
3220 5 : if ((flags & 512)) {
3221 5 : FS.truncate(node, 0);
3222 5 : }
3223 5 : // we've already handled these, don't pass down to the underlying vfs
3224 5 : flags &= ~(128 | 512);
3225 5 :
3226 5 : // register the stream with the filesystem
3227 5 : var stream = FS.createStream({
3228 5 : node: node,
3229 5 : path: FS.getPath(node), // we want the absolute path to the node
3230 5 : flags: flags,
3231 5 : seekable: true,
3232 5 : position: 0,
3233 5 : stream_ops: node.stream_ops,
3234 5 : // used by the file family libc calls (fopen, fwrite, ferror, etc.)
3235 5 : ungotten: [],
3236 5 : error: false
3237 5 : }, fd_start, fd_end);
3238 5 : // call the new stream's open function
3239 5 : if (stream.stream_ops.open) {
3240 5 : stream.stream_ops.open(stream);
3241 5 : }
3242 5 : if (Module['logReadFiles'] && !(flags & 1)) {
3243 5 : if (!FS.readFiles) FS.readFiles = {};
3244 5 : if (!(path in FS.readFiles)) {
3245 5 : FS.readFiles[path] = 1;
3246 5 : Module['printErr']('read file: ' + path);
3247 5 : }
3248 5 : }
3249 5 : return stream;
3250 5 : },close:function (stream) {
3251 5 : try {
3252 5 : if (stream.stream_ops.close) {
3253 5 : stream.stream_ops.close(stream);
3254 5 : }
3255 5 : } catch (e) {
3256 5 : throw e;
3257 5 : } finally {
3258 5 : FS.closeStream(stream.fd);
3259 5 : }
3260 5 : },llseek:function (stream, offset, whence) {
3261 0 : if (!stream.seekable || !stream.stream_ops.llseek) {
3262 0 : throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
3263 0 : }
3264 0 : return stream.stream_ops.llseek(stream, offset, whence);
3265 3 : },read:function (stream, buffer, offset, length, position) {
3266 3 : if (length < 0 || position < 0) {
3267 3 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3268 3 : }
3269 3 : if ((stream.flags & 2097155) === 1) {
3270 3 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3271 3 : }
3272 3 : if (FS.isDir(stream.node.mode)) {
3273 3 : throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
3274 3 : }
3275 3 : if (!stream.stream_ops.read) {
3276 3 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3277 3 : }
3278 3 : var seeking = true;
3279 3 : if (typeof position === 'undefined') {
3280 3 : position = stream.position;
3281 3 : seeking = false;
3282 3 : } else if (!stream.seekable) {
3283 3 : throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
3284 3 : }
3285 3 : var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);
3286 3 : if (!seeking) stream.position += bytesRead;
3287 3 : return bytesRead;
3288 6 : },write:function (stream, buffer, offset, length, position, canOwn) {
3289 6 : if (length < 0 || position < 0) {
3290 6 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3291 6 : }
3292 6 : if ((stream.flags & 2097155) === 0) {
3293 6 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3294 6 : }
3295 6 : if (FS.isDir(stream.node.mode)) {
3296 6 : throw new FS.ErrnoError(ERRNO_CODES.EISDIR);
3297 6 : }
3298 6 : if (!stream.stream_ops.write) {
3299 6 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3300 6 : }
3301 6 : var seeking = true;
3302 6 : if (typeof position === 'undefined') {
3303 6 : position = stream.position;
3304 6 : seeking = false;
3305 6 : } else if (!stream.seekable) {
3306 6 : throw new FS.ErrnoError(ERRNO_CODES.ESPIPE);
3307 6 : }
3308 6 : if (stream.flags & 1024) {
3309 6 : // seek to the end before writing in append mode
3310 6 : FS.llseek(stream, 0, 2);
3311 6 : }
3312 6 : var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);
3313 6 : if (!seeking) stream.position += bytesWritten;
3314 6 : return bytesWritten;
3315 6 : },allocate:function (stream, offset, length) {
3316 0 : if (offset < 0 || length <= 0) {
3317 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
3318 0 : }
3319 0 : if ((stream.flags & 2097155) === 0) {
3320 0 : throw new FS.ErrnoError(ERRNO_CODES.EBADF);
3321 0 : }
3322 0 : if (!FS.isFile(stream.node.mode) && !FS.isDir(node.mode)) {
3323 0 : throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
3324 0 : }
3325 0 : if (!stream.stream_ops.allocate) {
3326 0 : throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
3327 0 : }
3328 0 : stream.stream_ops.allocate(stream, offset, length);
3329 1 : },mmap:function (stream, buffer, offset, length, position, prot, flags) {
3330 0 : // TODO if PROT is PROT_WRITE, make sure we have write access
3331 0 : if ((stream.flags & 2097155) === 1) {
3332 0 : throw new FS.ErrnoError(ERRNO_CODES.EACCES);
3333 0 : }
3334 0 : if (!stream.stream_ops.mmap) {
3335 0 : throw new FS.ErrnoError(ERRNO_CODES.ENODEV);
3336 0 : }
3337 0 : return stream.stream_ops.mmap(stream, buffer, offset, length, position, prot, flags);
3338 1 : },ioctl:function (stream, cmd, arg) {
3339 0 : if (!stream.stream_ops.ioctl) {
3340 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTTY);
3341 0 : }
3342 0 : return stream.stream_ops.ioctl(stream, cmd, arg);
3343 1 : },readFile:function (path, opts) {
3344 0 : opts = opts || {};
3345 0 : opts.flags = opts.flags || 'r';
3346 0 : opts.encoding = opts.encoding || 'binary';
3347 0 : if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
3348 0 : throw new Error('Invalid encoding type "' + opts.encoding + '"');
3349 0 : }
3350 0 : var ret;
3351 0 : var stream = FS.open(path, opts.flags);
3352 0 : var stat = FS.stat(path);
3353 0 : var length = stat.size;
3354 0 : var buf = new Uint8Array(length);
3355 0 : FS.read(stream, buf, 0, length, 0);
3356 0 : if (opts.encoding === 'utf8') {
3357 0 : ret = '';
3358 0 : var utf8 = new Runtime.UTF8Processor();
3359 0 : for (var i = 0; i < length; i++) {
3360 0 : ret += utf8.processCChar(buf[i]);
3361 0 : }
3362 0 : } else if (opts.encoding === 'binary') {
3363 0 : ret = buf;
3364 0 : }
3365 0 : FS.close(stream);
3366 0 : return ret;
3367 1 : },writeFile:function (path, data, opts) {
3368 0 : opts = opts || {};
3369 0 : opts.flags = opts.flags || 'w';
3370 0 : opts.encoding = opts.encoding || 'utf8';
3371 0 : if (opts.encoding !== 'utf8' && opts.encoding !== 'binary') {
3372 0 : throw new Error('Invalid encoding type "' + opts.encoding + '"');
3373 0 : }
3374 0 : var stream = FS.open(path, opts.flags, opts.mode);
3375 0 : if (opts.encoding === 'utf8') {
3376 0 : var utf8 = new Runtime.UTF8Processor();
3377 0 : var buf = new Uint8Array(utf8.processJSString(data));
3378 0 : FS.write(stream, buf, 0, buf.length, 0, opts.canOwn);
3379 0 : } else if (opts.encoding === 'binary') {
3380 0 : FS.write(stream, data, 0, data.length, 0, opts.canOwn);
3381 0 : }
3382 0 : FS.close(stream);
3383 21 : },cwd:function () {
3384 21 : return FS.currentPath;
3385 21 : },chdir:function (path) {
3386 0 : var lookup = FS.lookupPath(path, { follow: true });
3387 0 : if (!FS.isDir(lookup.node.mode)) {
3388 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR);
3389 0 : }
3390 0 : var err = FS.nodePermissions(lookup.node, 'x');
3391 0 : if (err) {
3392 0 : throw new FS.ErrnoError(err);
3393 0 : }
3394 0 : FS.currentPath = lookup.path;
3395 1 : },createDefaultDirectories:function () {
3396 1 : FS.mkdir('/tmp');
3397 1 : },createDefaultDevices:function () {
3398 1 : // create /dev
3399 1 : FS.mkdir('/dev');
3400 1 : // setup /dev/null
3401 1 : FS.registerDevice(FS.makedev(1, 3), {
3402 1 : read: function() { return 0; },
3403 1 : write: function() { return 0; }
3404 1 : });
3405 1 : FS.mkdev('/dev/null', FS.makedev(1, 3));
3406 1 : // setup /dev/tty and /dev/tty1
3407 1 : // stderr needs to print output using Module['printErr']
3408 1 : // so we register a second tty just for it.
3409 1 : TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);
3410 1 : TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);
3411 1 : FS.mkdev('/dev/tty', FS.makedev(5, 0));
3412 1 : FS.mkdev('/dev/tty1', FS.makedev(6, 0));
3413 1 : // we're not going to emulate the actual shm device,
3414 1 : // just create the tmp dirs that reside in it commonly
3415 1 : FS.mkdir('/dev/shm');
3416 1 : FS.mkdir('/dev/shm/tmp');
3417 1 : },createStandardStreams:function () {
3418 1 : // TODO deprecate the old functionality of a single
3419 1 : // input / output callback and that utilizes FS.createDevice
3420 1 : // and instead require a unique set of stream ops
3421 1 :
3422 1 : // by default, we symlink the standard streams to the
3423 1 : // default tty devices. however, if the standard streams
3424 1 : // have been overwritten we create a unique device for
3425 1 : // them instead.
3426 1 : if (Module['stdin']) {
3427 1 : FS.createDevice('/dev', 'stdin', Module['stdin']);
3428 1 : } else {
3429 1 : FS.symlink('/dev/tty', '/dev/stdin');
3430 1 : }
3431 1 : if (Module['stdout']) {
3432 1 : FS.createDevice('/dev', 'stdout', null, Module['stdout']);
3433 1 : } else {
3434 1 : FS.symlink('/dev/tty', '/dev/stdout');
3435 1 : }
3436 1 : if (Module['stderr']) {
3437 1 : FS.createDevice('/dev', 'stderr', null, Module['stderr']);
3438 1 : } else {
3439 1 : FS.symlink('/dev/tty1', '/dev/stderr');
3440 1 : }
3441 1 :
3442 1 : // open default streams for the stdin, stdout and stderr devices
3443 1 : var stdin = FS.open('/dev/stdin', 'r');
3444 1 : HEAP32[((_stdin)>>2)]=FS.getPtrForStream(stdin);
3445 1 : assert(stdin.fd === 0, 'invalid handle for stdin (' + stdin.fd + ')');
3446 1 :
3447 1 : var stdout = FS.open('/dev/stdout', 'w');
3448 1 : HEAP32[((_stdout)>>2)]=FS.getPtrForStream(stdout);
3449 1 : assert(stdout.fd === 1, 'invalid handle for stdout (' + stdout.fd + ')');
3450 1 :
3451 1 : var stderr = FS.open('/dev/stderr', 'w');
3452 1 : HEAP32[((_stderr)>>2)]=FS.getPtrForStream(stderr);
3453 1 : assert(stderr.fd === 2, 'invalid handle for stderr (' + stderr.fd + ')');
3454 2 : },ensureErrnoError:function () {
3455 2 : if (FS.ErrnoError) return;
3456 2 : FS.ErrnoError = function ErrnoError(errno) {
3457 1 : this.errno = errno;
3458 1 : for (var key in ERRNO_CODES) {
3459 1 : if (ERRNO_CODES[key] === errno) {
3460 1 : this.code = key;
3461 1 : break;
3462 1 : }
3463 1 : }
3464 1 : this.message = ERRNO_MESSAGES[errno];
3465 2 : };
3466 2 : FS.ErrnoError.prototype = new Error();
3467 2 : FS.ErrnoError.prototype.constructor = FS.ErrnoError;
3468 2 : // Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
3469 2 : [ERRNO_CODES.ENOENT].forEach(function(code) {
3470 1 : FS.genericErrors[code] = new FS.ErrnoError(code);
3471 1 : FS.genericErrors[code].stack = '<generic error, no stack>';
3472 2 : });
3473 2 : },staticInit:function () {
3474 1 : FS.ensureErrnoError();
3475 1 :
3476 1 : FS.nameTable = new Array(4096);
3477 1 :
3478 1 : FS.mount(MEMFS, {}, '/');
3479 1 :
3480 1 : FS.createDefaultDirectories();
3481 1 : FS.createDefaultDevices();
3482 1 : },init:function (input, output, error) {
3483 1 : assert(!FS.init.initialized, 'FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)');
3484 1 : FS.init.initialized = true;
3485 1 :
3486 1 : FS.ensureErrnoError();
3487 1 :
3488 1 : // Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
3489 1 : Module['stdin'] = input || Module['stdin'];
3490 1 : Module['stdout'] = output || Module['stdout'];
3491 1 : Module['stderr'] = error || Module['stderr'];
3492 1 :
3493 1 : FS.createStandardStreams();
3494 1 : },quit:function () {
3495 1 : FS.init.initialized = false;
3496 1 : for (var i = 0; i < FS.streams.length; i++) {
3497 1 : var stream = FS.streams[i];
3498 1 : if (!stream) {
3499 1 : continue;
3500 1 : }
3501 1 : FS.close(stream);
3502 1 : }
3503 1 : },getMode:function (canRead, canWrite) {
3504 1 : var mode = 0;
3505 1 : if (canRead) mode |= 292 | 73;
3506 1 : if (canWrite) mode |= 146;
3507 1 : return mode;
3508 1 : },joinPath:function (parts, forceRelative) {
3509 0 : var path = PATH.join.apply(null, parts);
3510 0 : if (forceRelative && path[0] == '/') path = path.substr(1);
3511 0 : return path;
3512 1 : },absolutePath:function (relative, base) {
3513 0 : return PATH.resolve(base, relative);
3514 1 : },standardizePath:function (path) {
3515 0 : return PATH.normalize(path);
3516 1 : },findObject:function (path, dontResolveLastLink) {
3517 0 : var ret = FS.analyzePath(path, dontResolveLastLink);
3518 0 : if (ret.exists) {
3519 0 : return ret.object;
3520 0 : } else {
3521 0 : ___setErrNo(ret.error);
3522 0 : return null;
3523 0 : }
3524 1 : },analyzePath:function (path, dontResolveLastLink) {
3525 0 : // operate from within the context of the symlink's target
3526 0 : try {
3527 0 : var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
3528 0 : path = lookup.path;
3529 0 : } catch (e) {
3530 0 : }
3531 0 : var ret = {
3532 0 : isRoot: false, exists: false, error: 0, name: null, path: null, object: null,
3533 0 : parentExists: false, parentPath: null, parentObject: null
3534 0 : };
3535 0 : try {
3536 0 : var lookup = FS.lookupPath(path, { parent: true });
3537 0 : ret.parentExists = true;
3538 0 : ret.parentPath = lookup.path;
3539 0 : ret.parentObject = lookup.node;
3540 0 : ret.name = PATH.basename(path);
3541 0 : lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });
3542 0 : ret.exists = true;
3543 0 : ret.path = lookup.path;
3544 0 : ret.object = lookup.node;
3545 0 : ret.name = lookup.node.name;
3546 0 : ret.isRoot = lookup.path === '/';
3547 0 : } catch (e) {
3548 0 : ret.error = e.errno;
3549 0 : };
3550 0 : return ret;
3551 1 : },createFolder:function (parent, name, canRead, canWrite) {
3552 0 : var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
3553 0 : var mode = FS.getMode(canRead, canWrite);
3554 0 : return FS.mkdir(path, mode);
3555 1 : },createPath:function (parent, path, canRead, canWrite) {
3556 0 : parent = typeof parent === 'string' ? parent : FS.getPath(parent);
3557 0 : var parts = path.split('/').reverse();
3558 0 : while (parts.length) {
3559 0 : var part = parts.pop();
3560 0 : if (!part) continue;
3561 0 : var current = PATH.join2(parent, part);
3562 0 : try {
3563 0 : FS.mkdir(current);
3564 0 : } catch (e) {
3565 0 : // ignore EEXIST
3566 0 : }
3567 0 : parent = current;
3568 0 : }
3569 0 : return current;
3570 1 : },createFile:function (parent, name, properties, canRead, canWrite) {
3571 0 : var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
3572 0 : var mode = FS.getMode(canRead, canWrite);
3573 0 : return FS.create(path, mode);
3574 1 : },createDataFile:function (parent, name, data, canRead, canWrite, canOwn) {
3575 1 : var path = name ? PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name) : parent;
3576 1 : var mode = FS.getMode(canRead, canWrite);
3577 1 : var node = FS.create(path, mode);
3578 1 : if (data) {
3579 1 : if (typeof data === 'string') {
3580 1 : var arr = new Array(data.length);
3581 1 : for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);
3582 1 : data = arr;
3583 1 : }
3584 1 : // make sure we can write to the file
3585 1 : FS.chmod(node, mode | 146);
3586 1 : var stream = FS.open(node, 'w');
3587 1 : FS.write(stream, data, 0, data.length, 0, canOwn);
3588 1 : FS.close(stream);
3589 1 : FS.chmod(node, mode);
3590 1 : }
3591 1 : return node;
3592 1 : },createDevice:function (parent, name, input, output) {
3593 0 : var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
3594 0 : var mode = FS.getMode(!!input, !!output);
3595 0 : if (!FS.createDevice.major) FS.createDevice.major = 64;
3596 0 : var dev = FS.makedev(FS.createDevice.major++, 0);
3597 0 : // Create a fake device that a set of stream ops to emulate
3598 0 : // the old behavior.
3599 0 : FS.registerDevice(dev, {
3600 0 : open: function(stream) {
3601 0 : stream.seekable = false;
3602 0 : },
3603 0 : close: function(stream) {
3604 0 : // flush any pending line data
3605 0 : if (output && output.buffer && output.buffer.length) {
3606 0 : output(10);
3607 0 : }
3608 0 : },
3609 0 : read: function(stream, buffer, offset, length, pos /* ignored */) {
3610 0 : var bytesRead = 0;
3611 0 : for (var i = 0; i < length; i++) {
3612 0 : var result;
3613 0 : try {
3614 0 : result = input();
3615 0 : } catch (e) {
3616 0 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
3617 0 : }
3618 0 : if (result === undefined && bytesRead === 0) {
3619 0 : throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
3620 0 : }
3621 0 : if (result === null || result === undefined) break;
3622 0 : bytesRead++;
3623 0 : buffer[offset+i] = result;
3624 0 : }
3625 0 : if (bytesRead) {
3626 0 : stream.node.timestamp = Date.now();
3627 0 : }
3628 0 : return bytesRead;
3629 0 : },
3630 0 : write: function(stream, buffer, offset, length, pos) {
3631 0 : for (var i = 0; i < length; i++) {
3632 0 : try {
3633 0 : output(buffer[offset+i]);
3634 0 : } catch (e) {
3635 0 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
3636 0 : }
3637 0 : }
3638 0 : if (length) {
3639 0 : stream.node.timestamp = Date.now();
3640 0 : }
3641 0 : return i;
3642 0 : }
3643 0 : });
3644 0 : return FS.mkdev(path, mode, dev);
3645 1 : },createLink:function (parent, name, target, canRead, canWrite) {
3646 0 : var path = PATH.join2(typeof parent === 'string' ? parent : FS.getPath(parent), name);
3647 0 : return FS.symlink(target, path);
3648 1 : },forceLoadFile:function (obj) {
3649 0 : if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;
3650 0 : var success = true;
3651 0 : if (typeof XMLHttpRequest !== 'undefined') {
3652 0 : throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");
3653 0 : } else if (Module['read']) {
3654 0 : // Command-line.
3655 0 : try {
3656 0 : // WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
3657 0 : // read() will try to parse UTF8.
3658 0 : obj.contents = intArrayFromString(Module['read'](obj.url), true);
3659 0 : } catch (e) {
3660 0 : success = false;
3661 0 : }
3662 0 : } else {
3663 0 : throw new Error('Cannot load without read() or XMLHttpRequest.');
3664 0 : }
3665 0 : if (!success) ___setErrNo(ERRNO_CODES.EIO);
3666 0 : return success;
3667 1 : },createLazyFile:function (parent, name, url, canRead, canWrite) {
3668 0 : // Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
3669 0 : function LazyUint8Array() {
3670 0 : this.lengthKnown = false;
3671 0 : this.chunks = []; // Loaded chunks. Index is the chunk number
3672 0 : }
3673 0 : LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {
3674 0 : if (idx > this.length-1 || idx < 0) {
3675 0 : return undefined;
3676 0 : }
3677 0 : var chunkOffset = idx % this.chunkSize;
3678 0 : var chunkNum = Math.floor(idx / this.chunkSize);
3679 0 : return this.getter(chunkNum)[chunkOffset];
3680 0 : }
3681 0 : LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {
3682 0 : this.getter = getter;
3683 0 : }
3684 0 : LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {
3685 0 : // Find length
3686 0 : var xhr = new XMLHttpRequest();
3687 0 : xhr.open('HEAD', url, false);
3688 0 : xhr.send(null);
3689 0 : if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3690 0 : var datalength = Number(xhr.getResponseHeader("Content-length"));
3691 0 : var header;
3692 0 : var hasByteServing = (header = xhr.getResponseHeader("Accept-Ranges")) && header === "bytes";
3693 0 : var chunkSize = 1024*1024; // Chunk size in bytes
3694 0 :
3695 0 : if (!hasByteServing) chunkSize = datalength;
3696 0 :
3697 0 : // Function to get a range from the remote URL.
3698 0 : var doXHR = (function(from, to) {
3699 0 : if (from > to) throw new Error("invalid range (" + from + ", " + to + ") or no bytes requested!");
3700 0 : if (to > datalength-1) throw new Error("only " + datalength + " bytes available! programmer error!");
3701 0 :
3702 0 : // TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
3703 0 : var xhr = new XMLHttpRequest();
3704 0 : xhr.open('GET', url, false);
3705 0 : if (datalength !== chunkSize) xhr.setRequestHeader("Range", "bytes=" + from + "-" + to);
3706 0 :
3707 0 : // Some hints to the browser that we want binary data.
3708 0 : if (typeof Uint8Array != 'undefined') xhr.responseType = 'arraybuffer';
3709 0 : if (xhr.overrideMimeType) {
3710 0 : xhr.overrideMimeType('text/plain; charset=x-user-defined');
3711 0 : }
3712 0 :
3713 0 : xhr.send(null);
3714 0 : if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error("Couldn't load " + url + ". Status: " + xhr.status);
3715 0 : if (xhr.response !== undefined) {
3716 0 : return new Uint8Array(xhr.response || []);
3717 0 : } else {
3718 0 : return intArrayFromString(xhr.responseText || '', true);
3719 0 : }
3720 0 : });
3721 0 : var lazyArray = this;
3722 0 : lazyArray.setDataGetter(function(chunkNum) {
3723 0 : var start = chunkNum * chunkSize;
3724 0 : var end = (chunkNum+1) * chunkSize - 1; // including this byte
3725 0 : end = Math.min(end, datalength-1); // if datalength-1 is selected, this is the last block
3726 0 : if (typeof(lazyArray.chunks[chunkNum]) === "undefined") {
3727 0 : lazyArray.chunks[chunkNum] = doXHR(start, end);
3728 0 : }
3729 0 : if (typeof(lazyArray.chunks[chunkNum]) === "undefined") throw new Error("doXHR failed!");
3730 0 : return lazyArray.chunks[chunkNum];
3731 0 : });
3732 0 :
3733 0 : this._length = datalength;
3734 0 : this._chunkSize = chunkSize;
3735 0 : this.lengthKnown = true;
3736 0 : }
3737 0 : if (typeof XMLHttpRequest !== 'undefined') {
3738 0 : if (!ENVIRONMENT_IS_WORKER) throw 'Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc';
3739 0 : var lazyArray = new LazyUint8Array();
3740 0 : Object.defineProperty(lazyArray, "length", {
3741 0 : get: function() {
3742 0 : if(!this.lengthKnown) {
3743 0 : this.cacheLength();
3744 0 : }
3745 0 : return this._length;
3746 0 : }
3747 0 : });
3748 0 : Object.defineProperty(lazyArray, "chunkSize", {
3749 0 : get: function() {
3750 0 : if(!this.lengthKnown) {
3751 0 : this.cacheLength();
3752 0 : }
3753 0 : return this._chunkSize;
3754 0 : }
3755 0 : });
3756 0 :
3757 0 : var properties = { isDevice: false, contents: lazyArray };
3758 0 : } else {
3759 0 : var properties = { isDevice: false, url: url };
3760 0 : }
3761 0 :
3762 0 : var node = FS.createFile(parent, name, properties, canRead, canWrite);
3763 0 : // This is a total hack, but I want to get this lazy file code out of the
3764 0 : // core of MEMFS. If we want to keep this lazy file concept I feel it should
3765 0 : // be its own thin LAZYFS proxying calls to MEMFS.
3766 0 : if (properties.contents) {
3767 0 : node.contents = properties.contents;
3768 0 : } else if (properties.url) {
3769 0 : node.contents = null;
3770 0 : node.url = properties.url;
3771 0 : }
3772 0 : // override each stream op with one that tries to force load the lazy file first
3773 0 : var stream_ops = {};
3774 0 : var keys = Object.keys(node.stream_ops);
3775 0 : keys.forEach(function(key) {
3776 0 : var fn = node.stream_ops[key];
3777 0 : stream_ops[key] = function forceLoadLazyFile() {
3778 0 : if (!FS.forceLoadFile(node)) {
3779 0 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
3780 0 : }
3781 0 : return fn.apply(null, arguments);
3782 0 : };
3783 0 : });
3784 0 : // use a custom read function
3785 0 : stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {
3786 0 : if (!FS.forceLoadFile(node)) {
3787 0 : throw new FS.ErrnoError(ERRNO_CODES.EIO);
3788 0 : }
3789 0 : var contents = stream.node.contents;
3790 0 : if (position >= contents.length)
3791 0 : return 0;
3792 0 : var size = Math.min(contents.length - position, length);
3793 0 : assert(size >= 0);
3794 0 : if (contents.slice) { // normal array
3795 0 : for (var i = 0; i < size; i++) {
3796 0 : buffer[offset + i] = contents[position + i];
3797 0 : }
3798 0 : } else {
3799 0 : for (var i = 0; i < size; i++) { // LazyUint8Array from sync binary XHR
3800 0 : buffer[offset + i] = contents.get(position + i);
3801 0 : }
3802 0 : }
3803 0 : return size;
3804 0 : };
3805 0 : node.stream_ops = stream_ops;
3806 0 : return node;
3807 1 : },createPreloadedFile:function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn) {
3808 0 : Browser.init();
3809 0 : // TODO we should allow people to just pass in a complete filename instead
3810 0 : // of parent and name being that we just join them anyways
3811 0 : var fullname = name ? PATH.resolve(PATH.join2(parent, name)) : parent;
3812 0 : function processData(byteArray) {
3813 0 : function finish(byteArray) {
3814 0 : if (!dontCreateFile) {
3815 0 : FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);
3816 0 : }
3817 0 : if (onload) onload();
3818 0 : removeRunDependency('cp ' + fullname);
3819 0 : }
3820 0 : var handled = false;
3821 0 : Module['preloadPlugins'].forEach(function(plugin) {
3822 0 : if (handled) return;
3823 0 : if (plugin['canHandle'](fullname)) {
3824 0 : plugin['handle'](byteArray, fullname, finish, function() {
3825 0 : if (onerror) onerror();
3826 0 : removeRunDependency('cp ' + fullname);
3827 0 : });
3828 0 : handled = true;
3829 0 : }
3830 0 : });
3831 0 : if (!handled) finish(byteArray);
3832 0 : }
3833 0 : addRunDependency('cp ' + fullname);
3834 0 : if (typeof url == 'string') {
3835 0 : Browser.asyncLoad(url, function(byteArray) {
3836 0 : processData(byteArray);
3837 0 : }, onerror);
3838 0 : } else {
3839 0 : processData(url);
3840 0 : }
3841 1 : },indexedDB:function () {
3842 0 : return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
3843 1 : },DB_NAME:function () {
3844 0 : return 'EM_FS_' + window.location.pathname;
3845 1 : },DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function (paths, onload, onerror) {
3846 0 : onload = onload || function(){};
3847 0 : onerror = onerror || function(){};
3848 0 : var indexedDB = FS.indexedDB();
3849 0 : try {
3850 0 : var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
3851 0 : } catch (e) {
3852 0 : return onerror(e);
3853 0 : }
3854 0 : openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {
3855 0 : console.log('creating db');
3856 0 : var db = openRequest.result;
3857 0 : db.createObjectStore(FS.DB_STORE_NAME);
3858 0 : };
3859 0 : openRequest.onsuccess = function openRequest_onsuccess() {
3860 0 : var db = openRequest.result;
3861 0 : var transaction = db.transaction([FS.DB_STORE_NAME], 'readwrite');
3862 0 : var files = transaction.objectStore(FS.DB_STORE_NAME);
3863 0 : var ok = 0, fail = 0, total = paths.length;
3864 0 : function finish() {
3865 0 : if (fail == 0) onload(); else onerror();
3866 0 : }
3867 0 : paths.forEach(function(path) {
3868 0 : var putRequest = files.put(FS.analyzePath(path).object.contents, path);
3869 0 : putRequest.onsuccess = function putRequest_onsuccess() { ok++; if (ok + fail == total) finish() };
3870 0 : putRequest.onerror = function putRequest_onerror() { fail++; if (ok + fail == total) finish() };
3871 0 : });
3872 0 : transaction.onerror = onerror;
3873 0 : };
3874 0 : openRequest.onerror = onerror;
3875 1 : },loadFilesFromDB:function (paths, onload, onerror) {
3876 0 : onload = onload || function(){};
3877 0 : onerror = onerror || function(){};
3878 0 : var indexedDB = FS.indexedDB();
3879 0 : try {
3880 0 : var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);
3881 0 : } catch (e) {
3882 0 : return onerror(e);
3883 0 : }
3884 0 : openRequest.onupgradeneeded = onerror; // no database to load from
3885 0 : openRequest.onsuccess = function openRequest_onsuccess() {
3886 0 : var db = openRequest.result;
3887 0 : try {
3888 0 : var transaction = db.transaction([FS.DB_STORE_NAME], 'readonly');
3889 0 : } catch(e) {
3890 0 : onerror(e);
3891 0 : return;
3892 0 : }
3893 0 : var files = transaction.objectStore(FS.DB_STORE_NAME);
3894 0 : var ok = 0, fail = 0, total = paths.length;
3895 0 : function finish() {
3896 0 : if (fail == 0) onload(); else onerror();
3897 0 : }
3898 0 : paths.forEach(function(path) {
3899 0 : var getRequest = files.get(path);
3900 0 : getRequest.onsuccess = function getRequest_onsuccess() {
3901 0 : if (FS.analyzePath(path).exists) {
3902 0 : FS.unlink(path);
3903 0 : }
3904 0 : FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);
3905 0 : ok++;
3906 0 : if (ok + fail == total) finish();
3907 0 : };
3908 0 : getRequest.onerror = function getRequest_onerror() { fail++; if (ok + fail == total) finish() };
3909 0 : });
3910 0 : transaction.onerror = onerror;
3911 0 : };
3912 0 : openRequest.onerror = onerror;
3913 1 : }};
3914 1 :
3915 1 : function _lseek(fildes, offset, whence) {
3916 0 : // off_t lseek(int fildes, off_t offset, int whence);
3917 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/lseek.html
3918 0 : var stream = FS.getStream(fildes);
3919 0 : if (!stream) {
3920 0 : ___setErrNo(ERRNO_CODES.EBADF);
3921 0 : return -1;
3922 0 : }
3923 0 : try {
3924 0 : return FS.llseek(stream, offset, whence);
3925 0 : } catch (e) {
3926 0 : FS.handleFSError(e);
3927 0 : return -1;
3928 0 : }
3929 1 : }
3930 1 :
3931 6 : function _fileno(stream) {
3932 6 : // int fileno(FILE *stream);
3933 6 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fileno.html
3934 6 : stream = FS.getStreamFromPtr(stream);
3935 6 : if (!stream) return -1;
3936 6 : return stream.fd;
3937 6 : }function _fseek(stream, offset, whence) {
3938 0 : // int fseek(FILE *stream, long offset, int whence);
3939 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fseek.html
3940 0 : var fd = _fileno(stream);
3941 0 : var ret = _lseek(fd, offset, whence);
3942 0 : if (ret == -1) {
3943 0 : return -1;
3944 0 : }
3945 0 : stream = FS.getStreamFromPtr(stream);
3946 0 : stream.eof = false;
3947 0 : return 0;
3948 1 : }
3949 1 :
3950 1 :
3951 1 : Module["_i64Subtract"] = _i64Subtract;
3952 1 :
3953 1 :
3954 1 : Module["_i64Add"] = _i64Add;
3955 1 :
3956 1 : function _setlocale(category, locale) {
3957 0 : if (!_setlocale.ret) _setlocale.ret = allocate([0], 'i8', ALLOC_NORMAL);
3958 0 : return _setlocale.ret;
3959 1 : }
3960 1 :
3961 1 :
3962 1 : function _close(fildes) {
3963 1 : // int close(int fildes);
3964 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/close.html
3965 1 : var stream = FS.getStream(fildes);
3966 1 : if (!stream) {
3967 1 : ___setErrNo(ERRNO_CODES.EBADF);
3968 1 : return -1;
3969 1 : }
3970 1 : try {
3971 1 : FS.close(stream);
3972 1 : return 0;
3973 1 : } catch (e) {
3974 1 : FS.handleFSError(e);
3975 1 : return -1;
3976 1 : }
3977 1 : }
3978 1 :
3979 1 : function _fsync(fildes) {
3980 1 : // int fsync(int fildes);
3981 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fsync.html
3982 1 : var stream = FS.getStream(fildes);
3983 1 : if (stream) {
3984 1 : // We write directly to the file system, so there's nothing to do here.
3985 1 : return 0;
3986 1 : } else {
3987 1 : ___setErrNo(ERRNO_CODES.EBADF);
3988 1 : return -1;
3989 1 : }
3990 1 : }function _fclose(stream) {
3991 1 : // int fclose(FILE *stream);
3992 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fclose.html
3993 1 : var fd = _fileno(stream);
3994 1 : _fsync(fd);
3995 1 : return _close(fd);
3996 1 : }
3997 1 :
3998 1 :
3999 1 :
4000 1 :
4001 1 :
4002 1 : function _mkport() { throw 'TODO' }var SOCKFS={mount:function (mount) {
4003 1 : return FS.createNode(null, '/', 16384 | 511 /* 0777 */, 0);
4004 1 : },createSocket:function (family, type, protocol) {
4005 0 : var streaming = type == 1;
4006 0 : if (protocol) {
4007 0 : assert(streaming == (protocol == 6)); // if SOCK_STREAM, must be tcp
4008 0 : }
4009 0 :
4010 0 : // create our internal socket structure
4011 0 : var sock = {
4012 0 : family: family,
4013 0 : type: type,
4014 0 : protocol: protocol,
4015 0 : server: null,
4016 0 : peers: {},
4017 0 : pending: [],
4018 0 : recv_queue: [],
4019 0 : sock_ops: SOCKFS.websocket_sock_ops
4020 0 : };
4021 0 :
4022 0 : // create the filesystem node to store the socket structure
4023 0 : var name = SOCKFS.nextname();
4024 0 : var node = FS.createNode(SOCKFS.root, name, 49152, 0);
4025 0 : node.sock = sock;
4026 0 :
4027 0 : // and the wrapping stream that enables library functions such
4028 0 : // as read and write to indirectly interact with the socket
4029 0 : var stream = FS.createStream({
4030 0 : path: name,
4031 0 : node: node,
4032 0 : flags: FS.modeStringToFlags('r+'),
4033 0 : seekable: false,
4034 0 : stream_ops: SOCKFS.stream_ops
4035 0 : });
4036 0 :
4037 0 : // map the new stream to the socket structure (sockets have a 1:1
4038 0 : // relationship with a stream)
4039 0 : sock.stream = stream;
4040 0 :
4041 0 : return sock;
4042 1 : },getSocket:function (fd) {
4043 0 : var stream = FS.getStream(fd);
4044 0 : if (!stream || !FS.isSocket(stream.node.mode)) {
4045 0 : return null;
4046 0 : }
4047 0 : return stream.node.sock;
4048 1 : },stream_ops:{poll:function (stream) {
4049 0 : var sock = stream.node.sock;
4050 0 : return sock.sock_ops.poll(sock);
4051 1 : },ioctl:function (stream, request, varargs) {
4052 0 : var sock = stream.node.sock;
4053 0 : return sock.sock_ops.ioctl(sock, request, varargs);
4054 1 : },read:function (stream, buffer, offset, length, position /* ignored */) {
4055 0 : var sock = stream.node.sock;
4056 0 : var msg = sock.sock_ops.recvmsg(sock, length);
4057 0 : if (!msg) {
4058 0 : // socket is closed
4059 0 : return 0;
4060 0 : }
4061 0 : buffer.set(msg.buffer, offset);
4062 0 : return msg.buffer.length;
4063 1 : },write:function (stream, buffer, offset, length, position /* ignored */) {
4064 0 : var sock = stream.node.sock;
4065 0 : return sock.sock_ops.sendmsg(sock, buffer, offset, length);
4066 1 : },close:function (stream) {
4067 0 : var sock = stream.node.sock;
4068 0 : sock.sock_ops.close(sock);
4069 1 : }},nextname:function () {
4070 0 : if (!SOCKFS.nextname.current) {
4071 0 : SOCKFS.nextname.current = 0;
4072 0 : }
4073 0 : return 'socket[' + (SOCKFS.nextname.current++) + ']';
4074 1 : },websocket_sock_ops:{createPeer:function (sock, addr, port) {
4075 0 : var ws;
4076 0 :
4077 0 : if (typeof addr === 'object') {
4078 0 : ws = addr;
4079 0 : addr = null;
4080 0 : port = null;
4081 0 : }
4082 0 :
4083 0 : if (ws) {
4084 0 : // for sockets that've already connected (e.g. we're the server)
4085 0 : // we can inspect the _socket property for the address
4086 0 : if (ws._socket) {
4087 0 : addr = ws._socket.remoteAddress;
4088 0 : port = ws._socket.remotePort;
4089 0 : }
4090 0 : // if we're just now initializing a connection to the remote,
4091 0 : // inspect the url property
4092 0 : else {
4093 0 : var result = /ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);
4094 0 : if (!result) {
4095 0 : throw new Error('WebSocket URL must be in the format ws(s)://address:port');
4096 0 : }
4097 0 : addr = result[1];
4098 0 : port = parseInt(result[2], 10);
4099 0 : }
4100 0 : } else {
4101 0 : // create the actual websocket object and connect
4102 0 : try {
4103 0 : // runtimeConfig gets set to true if WebSocket runtime configuration is available.
4104 0 : var runtimeConfig = (Module['websocket'] && ('object' === typeof Module['websocket']));
4105 0 :
4106 0 : // The default value is 'ws://' the replace is needed because the compiler replaces "//" comments with '#'
4107 0 : // comments without checking context, so we'd end up with ws:#, the replace swaps the "#" for "//" again.
4108 0 : var url = 'ws:#'.replace('#', '//');
4109 0 :
4110 0 : if (runtimeConfig) {
4111 0 : if ('string' === typeof Module['websocket']['url']) {
4112 0 : url = Module['websocket']['url']; // Fetch runtime WebSocket URL config.
4113 0 : }
4114 0 : }
4115 0 :
4116 0 : if (url === 'ws://' || url === 'wss://') { // Is the supplied URL config just a prefix, if so complete it.
4117 0 : url = url + addr + ':' + port;
4118 0 : }
4119 0 :
4120 0 : // Make the WebSocket subprotocol (Sec-WebSocket-Protocol) default to binary if no configuration is set.
4121 0 : var subProtocols = 'binary'; // The default value is 'binary'
4122 0 :
4123 0 : if (runtimeConfig) {
4124 0 : if ('string' === typeof Module['websocket']['subprotocol']) {
4125 0 : subProtocols = Module['websocket']['subprotocol']; // Fetch runtime WebSocket subprotocol config.
4126 0 : }
4127 0 : }
4128 0 :
4129 0 : // The regex trims the string (removes spaces at the beginning and end, then splits the string by
4130 0 : // <any space>,<any space> into an Array. Whitespace removal is important for Websockify and ws.
4131 0 : subProtocols = subProtocols.replace(/^ +| +$/g,"").split(/ *, */);
4132 0 :
4133 0 : // The node ws library API for specifying optional subprotocol is slightly different than the browser's.
4134 0 : var opts = ENVIRONMENT_IS_NODE ? {'protocol': subProtocols.toString()} : subProtocols;
4135 0 :
4136 0 : // If node we use the ws library.
4137 0 : var WebSocket = ENVIRONMENT_IS_NODE ? require('ws') : window['WebSocket'];
4138 0 : ws = new WebSocket(url, opts);
4139 0 : ws.binaryType = 'arraybuffer';
4140 0 : } catch (e) {
4141 0 : throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);
4142 0 : }
4143 0 : }
4144 0 :
4145 0 :
4146 0 : var peer = {
4147 0 : addr: addr,
4148 0 : port: port,
4149 0 : socket: ws,
4150 0 : dgram_send_queue: []
4151 0 : };
4152 0 :
4153 0 : SOCKFS.websocket_sock_ops.addPeer(sock, peer);
4154 0 : SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);
4155 0 :
4156 0 : // if this is a bound dgram socket, send the port number first to allow
4157 0 : // us to override the ephemeral port reported to us by remotePort on the
4158 0 : // remote end.
4159 0 : if (sock.type === 2 && typeof sock.sport !== 'undefined') {
4160 0 : peer.dgram_send_queue.push(new Uint8Array([
4161 0 : 255, 255, 255, 255,
4162 0 : 'p'.charCodeAt(0), 'o'.charCodeAt(0), 'r'.charCodeAt(0), 't'.charCodeAt(0),
4163 0 : ((sock.sport & 0xff00) >> 8) , (sock.sport & 0xff)
4164 0 : ]));
4165 0 : }
4166 0 :
4167 0 : return peer;
4168 1 : },getPeer:function (sock, addr, port) {
4169 0 : return sock.peers[addr + ':' + port];
4170 1 : },addPeer:function (sock, peer) {
4171 0 : sock.peers[peer.addr + ':' + peer.port] = peer;
4172 1 : },removePeer:function (sock, peer) {
4173 0 : delete sock.peers[peer.addr + ':' + peer.port];
4174 1 : },handlePeerEvents:function (sock, peer) {
4175 0 : var first = true;
4176 0 :
4177 0 : var handleOpen = function () {
4178 0 : try {
4179 0 : var queued = peer.dgram_send_queue.shift();
4180 0 : while (queued) {
4181 0 : peer.socket.send(queued);
4182 0 : queued = peer.dgram_send_queue.shift();
4183 0 : }
4184 0 : } catch (e) {
4185 0 : // not much we can do here in the way of proper error handling as we've already
4186 0 : // lied and said this data was sent. shut it down.
4187 0 : peer.socket.close();
4188 0 : }
4189 0 : };
4190 0 :
4191 0 : function handleMessage(data) {
4192 0 : assert(typeof data !== 'string' && data.byteLength !== undefined); // must receive an ArrayBuffer
4193 0 : data = new Uint8Array(data); // make a typed array view on the array buffer
4194 0 :
4195 0 :
4196 0 : // if this is the port message, override the peer's port with it
4197 0 : var wasfirst = first;
4198 0 : first = false;
4199 0 : if (wasfirst &&
4200 0 : data.length === 10 &&
4201 0 : data[0] === 255 && data[1] === 255 && data[2] === 255 && data[3] === 255 &&
4202 0 : data[4] === 'p'.charCodeAt(0) && data[5] === 'o'.charCodeAt(0) && data[6] === 'r'.charCodeAt(0) && data[7] === 't'.charCodeAt(0)) {
4203 0 : // update the peer's port and it's key in the peer map
4204 0 : var newport = ((data[8] << 8) | data[9]);
4205 0 : SOCKFS.websocket_sock_ops.removePeer(sock, peer);
4206 0 : peer.port = newport;
4207 0 : SOCKFS.websocket_sock_ops.addPeer(sock, peer);
4208 0 : return;
4209 0 : }
4210 0 :
4211 0 : sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });
4212 0 : };
4213 0 :
4214 0 : if (ENVIRONMENT_IS_NODE) {
4215 0 : peer.socket.on('open', handleOpen);
4216 0 : peer.socket.on('message', function(data, flags) {
4217 0 : if (!flags.binary) {
4218 0 : return;
4219 0 : }
4220 0 : handleMessage((new Uint8Array(data)).buffer); // copy from node Buffer -> ArrayBuffer
4221 0 : });
4222 0 : peer.socket.on('error', function() {
4223 0 : // don't throw
4224 0 : });
4225 0 : } else {
4226 0 : peer.socket.onopen = handleOpen;
4227 0 : peer.socket.onmessage = function peer_socket_onmessage(event) {
4228 0 : handleMessage(event.data);
4229 0 : };
4230 0 : }
4231 1 : },poll:function (sock) {
4232 0 : if (sock.type === 1 && sock.server) {
4233 0 : // listen sockets should only say they're available for reading
4234 0 : // if there are pending clients.
4235 0 : return sock.pending.length ? (64 | 1) : 0;
4236 0 : }
4237 0 :
4238 0 : var mask = 0;
4239 0 : var dest = sock.type === 1 ? // we only care about the socket state for connection-based sockets
4240 0 : SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) :
4241 0 : null;
4242 0 :
4243 0 : if (sock.recv_queue.length ||
4244 0 : !dest || // connection-less sockets are always ready to read
4245 0 : (dest && dest.socket.readyState === dest.socket.CLOSING) ||
4246 0 : (dest && dest.socket.readyState === dest.socket.CLOSED)) { // let recv return 0 once closed
4247 0 : mask |= (64 | 1);
4248 0 : }
4249 0 :
4250 0 : if (!dest || // connection-less sockets are always ready to write
4251 0 : (dest && dest.socket.readyState === dest.socket.OPEN)) {
4252 0 : mask |= 4;
4253 0 : }
4254 0 :
4255 0 : if ((dest && dest.socket.readyState === dest.socket.CLOSING) ||
4256 0 : (dest && dest.socket.readyState === dest.socket.CLOSED)) {
4257 0 : mask |= 16;
4258 0 : }
4259 0 :
4260 0 : return mask;
4261 1 : },ioctl:function (sock, request, arg) {
4262 0 : switch (request) {
4263 0 : case 21531:
4264 0 : var bytes = 0;
4265 0 : if (sock.recv_queue.length) {
4266 0 : bytes = sock.recv_queue[0].data.length;
4267 0 : }
4268 0 : HEAP32[((arg)>>2)]=bytes;
4269 0 : return 0;
4270 0 : default:
4271 0 : return ERRNO_CODES.EINVAL;
4272 0 : }
4273 1 : },close:function (sock) {
4274 0 : // if we've spawned a listen server, close it
4275 0 : if (sock.server) {
4276 0 : try {
4277 0 : sock.server.close();
4278 0 : } catch (e) {
4279 0 : }
4280 0 : sock.server = null;
4281 0 : }
4282 0 : // close any peer connections
4283 0 : var peers = Object.keys(sock.peers);
4284 0 : for (var i = 0; i < peers.length; i++) {
4285 0 : var peer = sock.peers[peers[i]];
4286 0 : try {
4287 0 : peer.socket.close();
4288 0 : } catch (e) {
4289 0 : }
4290 0 : SOCKFS.websocket_sock_ops.removePeer(sock, peer);
4291 0 : }
4292 0 : return 0;
4293 1 : },bind:function (sock, addr, port) {
4294 0 : if (typeof sock.saddr !== 'undefined' || typeof sock.sport !== 'undefined') {
4295 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already bound
4296 0 : }
4297 0 : sock.saddr = addr;
4298 0 : sock.sport = port || _mkport();
4299 0 : // in order to emulate dgram sockets, we need to launch a listen server when
4300 0 : // binding on a connection-less socket
4301 0 : // note: this is only required on the server side
4302 0 : if (sock.type === 2) {
4303 0 : // close the existing server if it exists
4304 0 : if (sock.server) {
4305 0 : sock.server.close();
4306 0 : sock.server = null;
4307 0 : }
4308 0 : // swallow error operation not supported error that occurs when binding in the
4309 0 : // browser where this isn't supported
4310 0 : try {
4311 0 : sock.sock_ops.listen(sock, 0);
4312 0 : } catch (e) {
4313 0 : if (!(e instanceof FS.ErrnoError)) throw e;
4314 0 : if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;
4315 0 : }
4316 0 : }
4317 1 : },connect:function (sock, addr, port) {
4318 0 : if (sock.server) {
4319 0 : throw new FS.ErrnoError(ERRNO_CODS.EOPNOTSUPP);
4320 0 : }
4321 0 :
4322 0 : // TODO autobind
4323 0 : // if (!sock.addr && sock.type == 2) {
4324 0 : // }
4325 0 :
4326 0 : // early out if we're already connected / in the middle of connecting
4327 0 : if (typeof sock.daddr !== 'undefined' && typeof sock.dport !== 'undefined') {
4328 0 : var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
4329 0 : if (dest) {
4330 0 : if (dest.socket.readyState === dest.socket.CONNECTING) {
4331 0 : throw new FS.ErrnoError(ERRNO_CODES.EALREADY);
4332 0 : } else {
4333 0 : throw new FS.ErrnoError(ERRNO_CODES.EISCONN);
4334 0 : }
4335 0 : }
4336 0 : }
4337 0 :
4338 0 : // add the socket to our peer list and set our
4339 0 : // destination address / port to match
4340 0 : var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
4341 0 : sock.daddr = peer.addr;
4342 0 : sock.dport = peer.port;
4343 0 :
4344 0 : // always "fail" in non-blocking mode
4345 0 : throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);
4346 1 : },listen:function (sock, backlog) {
4347 0 : if (!ENVIRONMENT_IS_NODE) {
4348 0 : throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);
4349 0 : }
4350 0 : if (sock.server) {
4351 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL); // already listening
4352 0 : }
4353 0 : var WebSocketServer = require('ws').Server;
4354 0 : var host = sock.saddr;
4355 0 : sock.server = new WebSocketServer({
4356 0 : host: host,
4357 0 : port: sock.sport
4358 0 : // TODO support backlog
4359 0 : });
4360 0 :
4361 0 : sock.server.on('connection', function(ws) {
4362 0 : if (sock.type === 1) {
4363 0 : var newsock = SOCKFS.createSocket(sock.family, sock.type, sock.protocol);
4364 0 :
4365 0 : // create a peer on the new socket
4366 0 : var peer = SOCKFS.websocket_sock_ops.createPeer(newsock, ws);
4367 0 : newsock.daddr = peer.addr;
4368 0 : newsock.dport = peer.port;
4369 0 :
4370 0 : // push to queue for accept to pick up
4371 0 : sock.pending.push(newsock);
4372 0 : } else {
4373 0 : // create a peer on the listen socket so calling sendto
4374 0 : // with the listen socket and an address will resolve
4375 0 : // to the correct client
4376 0 : SOCKFS.websocket_sock_ops.createPeer(sock, ws);
4377 0 : }
4378 0 : });
4379 0 : sock.server.on('closed', function() {
4380 0 : sock.server = null;
4381 0 : });
4382 0 : sock.server.on('error', function() {
4383 0 : // don't throw
4384 0 : });
4385 1 : },accept:function (listensock) {
4386 0 : if (!listensock.server) {
4387 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
4388 0 : }
4389 0 : var newsock = listensock.pending.shift();
4390 0 : newsock.stream.flags = listensock.stream.flags;
4391 0 : return newsock;
4392 1 : },getname:function (sock, peer) {
4393 0 : var addr, port;
4394 0 : if (peer) {
4395 0 : if (sock.daddr === undefined || sock.dport === undefined) {
4396 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
4397 0 : }
4398 0 : addr = sock.daddr;
4399 0 : port = sock.dport;
4400 0 : } else {
4401 0 : // TODO saddr and sport will be set for bind()'d UDP sockets, but what
4402 0 : // should we be returning for TCP sockets that've been connect()'d?
4403 0 : addr = sock.saddr || 0;
4404 0 : port = sock.sport || 0;
4405 0 : }
4406 0 : return { addr: addr, port: port };
4407 1 : },sendmsg:function (sock, buffer, offset, length, addr, port) {
4408 0 : if (sock.type === 2) {
4409 0 : // connection-less sockets will honor the message address,
4410 0 : // and otherwise fall back to the bound destination address
4411 0 : if (addr === undefined || port === undefined) {
4412 0 : addr = sock.daddr;
4413 0 : port = sock.dport;
4414 0 : }
4415 0 : // if there was no address to fall back to, error out
4416 0 : if (addr === undefined || port === undefined) {
4417 0 : throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);
4418 0 : }
4419 0 : } else {
4420 0 : // connection-based sockets will only use the bound
4421 0 : addr = sock.daddr;
4422 0 : port = sock.dport;
4423 0 : }
4424 0 :
4425 0 : // find the peer for the destination address
4426 0 : var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);
4427 0 :
4428 0 : // early out if not connected with a connection-based socket
4429 0 : if (sock.type === 1) {
4430 0 : if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
4431 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
4432 0 : } else if (dest.socket.readyState === dest.socket.CONNECTING) {
4433 0 : throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
4434 0 : }
4435 0 : }
4436 0 :
4437 0 : // create a copy of the incoming data to send, as the WebSocket API
4438 0 : // doesn't work entirely with an ArrayBufferView, it'll just send
4439 0 : // the entire underlying buffer
4440 0 : var data;
4441 0 : if (buffer instanceof Array || buffer instanceof ArrayBuffer) {
4442 0 : data = buffer.slice(offset, offset + length);
4443 0 : } else { // ArrayBufferView
4444 0 : data = buffer.buffer.slice(buffer.byteOffset + offset, buffer.byteOffset + offset + length);
4445 0 : }
4446 0 :
4447 0 : // if we're emulating a connection-less dgram socket and don't have
4448 0 : // a cached connection, queue the buffer to send upon connect and
4449 0 : // lie, saying the data was sent now.
4450 0 : if (sock.type === 2) {
4451 0 : if (!dest || dest.socket.readyState !== dest.socket.OPEN) {
4452 0 : // if we're not connected, open a new connection
4453 0 : if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
4454 0 : dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);
4455 0 : }
4456 0 : dest.dgram_send_queue.push(data);
4457 0 : return length;
4458 0 : }
4459 0 : }
4460 0 :
4461 0 : try {
4462 0 : // send the actual data
4463 0 : dest.socket.send(data);
4464 0 : return length;
4465 0 : } catch (e) {
4466 0 : throw new FS.ErrnoError(ERRNO_CODES.EINVAL);
4467 0 : }
4468 1 : },recvmsg:function (sock, length) {
4469 0 : // http://pubs.opengroup.org/onlinepubs/7908799/xns/recvmsg.html
4470 0 : if (sock.type === 1 && sock.server) {
4471 0 : // tcp servers should not be recv()'ing on the listen socket
4472 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
4473 0 : }
4474 0 :
4475 0 : var queued = sock.recv_queue.shift();
4476 0 : if (!queued) {
4477 0 : if (sock.type === 1) {
4478 0 : var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);
4479 0 :
4480 0 : if (!dest) {
4481 0 : // if we have a destination address but are not connected, error out
4482 0 : throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);
4483 0 : }
4484 0 : else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {
4485 0 : // return null if the socket has closed
4486 0 : return null;
4487 0 : }
4488 0 : else {
4489 0 : // else, our socket is in a valid state but truly has nothing available
4490 0 : throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
4491 0 : }
4492 0 : } else {
4493 0 : throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);
4494 0 : }
4495 0 : }
4496 0 :
4497 0 : // queued.data will be an ArrayBuffer if it's unadulterated, but if it's
4498 0 : // requeued TCP data it'll be an ArrayBufferView
4499 0 : var queuedLength = queued.data.byteLength || queued.data.length;
4500 0 : var queuedOffset = queued.data.byteOffset || 0;
4501 0 : var queuedBuffer = queued.data.buffer || queued.data;
4502 0 : var bytesRead = Math.min(length, queuedLength);
4503 0 : var res = {
4504 0 : buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead),
4505 0 : addr: queued.addr,
4506 0 : port: queued.port
4507 0 : };
4508 0 :
4509 0 :
4510 0 : // push back any unread data for TCP connections
4511 0 : if (sock.type === 1 && bytesRead < queuedLength) {
4512 0 : var bytesRemaining = queuedLength - bytesRead;
4513 0 : queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);
4514 0 : sock.recv_queue.unshift(queued);
4515 0 : }
4516 0 :
4517 0 : return res;
4518 1 : }}};function _recv(fd, buf, len, flags) {
4519 0 : var sock = SOCKFS.getSocket(fd);
4520 0 : if (!sock) {
4521 0 : ___setErrNo(ERRNO_CODES.EBADF);
4522 0 : return -1;
4523 0 : }
4524 0 : // TODO honor flags
4525 0 : return _read(fd, buf, len);
4526 1 : }
4527 1 :
4528 1 : function _pread(fildes, buf, nbyte, offset) {
4529 0 : // ssize_t pread(int fildes, void *buf, size_t nbyte, off_t offset);
4530 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
4531 0 : var stream = FS.getStream(fildes);
4532 0 : if (!stream) {
4533 0 : ___setErrNo(ERRNO_CODES.EBADF);
4534 0 : return -1;
4535 0 : }
4536 0 : try {
4537 0 : var slab = HEAP8;
4538 0 : return FS.read(stream, slab, buf, nbyte, offset);
4539 0 : } catch (e) {
4540 0 : FS.handleFSError(e);
4541 0 : return -1;
4542 0 : }
4543 3 : }function _read(fildes, buf, nbyte) {
4544 3 : // ssize_t read(int fildes, void *buf, size_t nbyte);
4545 3 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/read.html
4546 3 : var stream = FS.getStream(fildes);
4547 3 : if (!stream) {
4548 3 : ___setErrNo(ERRNO_CODES.EBADF);
4549 3 : return -1;
4550 3 : }
4551 3 :
4552 3 :
4553 3 : try {
4554 3 : var slab = HEAP8;
4555 3 : return FS.read(stream, slab, buf, nbyte);
4556 3 : } catch (e) {
4557 3 : FS.handleFSError(e);
4558 3 : return -1;
4559 3 : }
4560 3 : }function _fread(ptr, size, nitems, stream) {
4561 3 : // size_t fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
4562 3 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fread.html
4563 3 : var bytesToRead = nitems * size;
4564 3 : if (bytesToRead == 0) {
4565 3 : return 0;
4566 3 : }
4567 3 : var bytesRead = 0;
4568 3 : var streamObj = FS.getStreamFromPtr(stream);
4569 3 : if (!streamObj) {
4570 3 : ___setErrNo(ERRNO_CODES.EBADF);
4571 3 : return 0;
4572 3 : }
4573 3 : while (streamObj.ungotten.length && bytesToRead > 0) {
4574 3 : HEAP8[((ptr++)|0)]=streamObj.ungotten.pop();
4575 3 : bytesToRead--;
4576 3 : bytesRead++;
4577 3 : }
4578 3 : var err = _read(streamObj.fd, ptr, bytesToRead);
4579 3 : if (err == -1) {
4580 3 : if (streamObj) streamObj.error = true;
4581 3 : return 0;
4582 3 : }
4583 3 : bytesRead += err;
4584 3 : if (bytesRead < bytesToRead) streamObj.eof = true;
4585 3 : return Math.floor(bytesRead / size);
4586 3 : }
4587 1 :
4588 1 : function _toupper(chr) {
4589 0 : if (chr >= 97 && chr <= 122) {
4590 0 : return chr - 97 + 65;
4591 0 : } else {
4592 0 : return chr;
4593 0 : }
4594 1 : }
4595 1 :
4596 1 :
4597 1 :
4598 1 : function _open(path, oflag, varargs) {
4599 1 : // int open(const char *path, int oflag, ...);
4600 1 : // http://pubs.opengroup.org/onlinepubs/009695399/functions/open.html
4601 1 : var mode = HEAP32[((varargs)>>2)];
4602 1 : path = Pointer_stringify(path);
4603 1 : try {
4604 1 : var stream = FS.open(path, oflag, mode);
4605 1 : return stream.fd;
4606 1 : } catch (e) {
4607 1 : FS.handleFSError(e);
4608 1 : return -1;
4609 1 : }
4610 1 : }function _fopen(filename, mode) {
4611 1 : // FILE *fopen(const char *restrict filename, const char *restrict mode);
4612 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fopen.html
4613 1 : var flags;
4614 1 : mode = Pointer_stringify(mode);
4615 1 : if (mode[0] == 'r') {
4616 1 : if (mode.indexOf('+') != -1) {
4617 1 : flags = 2;
4618 1 : } else {
4619 1 : flags = 0;
4620 1 : }
4621 1 : } else if (mode[0] == 'w') {
4622 1 : if (mode.indexOf('+') != -1) {
4623 1 : flags = 2;
4624 1 : } else {
4625 1 : flags = 1;
4626 1 : }
4627 1 : flags |= 64;
4628 1 : flags |= 512;
4629 1 : } else if (mode[0] == 'a') {
4630 1 : if (mode.indexOf('+') != -1) {
4631 1 : flags = 2;
4632 1 : } else {
4633 1 : flags = 1;
4634 1 : }
4635 1 : flags |= 64;
4636 1 : flags |= 1024;
4637 1 : } else {
4638 1 : ___setErrNo(ERRNO_CODES.EINVAL);
4639 1 : return 0;
4640 1 : }
4641 1 : var fd = _open(filename, flags, allocate([0x1FF, 0, 0, 0], 'i32', ALLOC_STACK)); // All creation permissions.
4642 1 : return fd === -1 ? 0 : FS.getPtrForStream(FS.getStream(fd));
4643 1 : }
4644 1 :
4645 1 : var _emscripten_check_longjmp=true;
4646 1 :
4647 1 :
4648 1 :
4649 1 : function _send(fd, buf, len, flags) {
4650 0 : var sock = SOCKFS.getSocket(fd);
4651 0 : if (!sock) {
4652 0 : ___setErrNo(ERRNO_CODES.EBADF);
4653 0 : return -1;
4654 0 : }
4655 0 : // TODO honor flags
4656 0 : return _write(fd, buf, len);
4657 1 : }
4658 1 :
4659 1 : function _pwrite(fildes, buf, nbyte, offset) {
4660 0 : // ssize_t pwrite(int fildes, const void *buf, size_t nbyte, off_t offset);
4661 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
4662 0 : var stream = FS.getStream(fildes);
4663 0 : if (!stream) {
4664 0 : ___setErrNo(ERRNO_CODES.EBADF);
4665 0 : return -1;
4666 0 : }
4667 0 : try {
4668 0 : var slab = HEAP8;
4669 0 : return FS.write(stream, slab, buf, nbyte, offset);
4670 0 : } catch (e) {
4671 0 : FS.handleFSError(e);
4672 0 : return -1;
4673 0 : }
4674 5 : }function _write(fildes, buf, nbyte) {
4675 5 : // ssize_t write(int fildes, const void *buf, size_t nbyte);
4676 5 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/write.html
4677 5 : var stream = FS.getStream(fildes);
4678 5 : if (!stream) {
4679 5 : ___setErrNo(ERRNO_CODES.EBADF);
4680 5 : return -1;
4681 5 : }
4682 5 :
4683 5 :
4684 5 : try {
4685 5 : var slab = HEAP8;
4686 5 : return FS.write(stream, slab, buf, nbyte);
4687 5 : } catch (e) {
4688 5 : FS.handleFSError(e);
4689 5 : return -1;
4690 5 : }
4691 5 : }function _fputc(c, stream) {
4692 0 : // int fputc(int c, FILE *stream);
4693 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputc.html
4694 0 : var chr = unSign(c & 0xFF);
4695 0 : HEAP8[((_fputc.ret)|0)]=chr;
4696 0 : var fd = _fileno(stream);
4697 0 : var ret = _write(fd, _fputc.ret, 1);
4698 0 : if (ret == -1) {
4699 0 : var streamObj = FS.getStreamFromPtr(stream);
4700 0 : if (streamObj) streamObj.error = true;
4701 0 : return -1;
4702 0 : } else {
4703 0 : return chr;
4704 0 : }
4705 1 : }
4706 1 :
4707 1 : var _log=Math_log;
4708 1 :
4709 1 : var _emscripten_postinvoke=true;
4710 1 :
4711 1 :
4712 1 : function _putchar(c) {
4713 0 : // int putchar(int c);
4714 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/putchar.html
4715 0 : return _fputc(c, HEAP32[((_stdout)>>2)]);
4716 1 : }
4717 1 : Module["_saveSetjmp"] = _saveSetjmp;
4718 1 :
4719 5 : function _fwrite(ptr, size, nitems, stream) {
4720 5 : // size_t fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
4721 5 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fwrite.html
4722 5 : var bytesToWrite = nitems * size;
4723 5 : if (bytesToWrite == 0) return 0;
4724 5 : var fd = _fileno(stream);
4725 5 : var bytesWritten = _write(fd, ptr, bytesToWrite);
4726 5 : if (bytesWritten == -1) {
4727 5 : var streamObj = FS.getStreamFromPtr(stream);
4728 5 : if (streamObj) streamObj.error = true;
4729 5 : return 0;
4730 5 : } else {
4731 5 : return Math.floor(bytesWritten / size);
4732 5 : }
4733 5 : }
4734 1 :
4735 1 : function _system(command) {
4736 0 : // int system(const char *command);
4737 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/system.html
4738 0 : // Can't call external programs.
4739 0 : ___setErrNo(ERRNO_CODES.EAGAIN);
4740 0 : return -1;
4741 1 : }
4742 1 :
4743 1 : function _frexp(x, exp_addr) {
4744 0 : var sig = 0, exp_ = 0;
4745 0 : if (x !== 0) {
4746 0 : var sign = 1;
4747 0 : if (x < 0) {
4748 0 : x = -x;
4749 0 : sign = -1;
4750 0 : }
4751 0 : var raw_exp = Math.log(x)/Math.log(2);
4752 0 : exp_ = Math.ceil(raw_exp);
4753 0 : if (exp_ === raw_exp) exp_ += 1;
4754 0 : sig = sign*x/Math.pow(2, exp_);
4755 0 : }
4756 0 : HEAP32[((exp_addr)>>2)]=exp_;
4757 0 : return sig;
4758 1 : }
4759 1 :
4760 1 :
4761 1 :
4762 1 : var _tzname=allocate(8, "i32*", ALLOC_STATIC);
4763 1 :
4764 1 : var _daylight=allocate(1, "i32*", ALLOC_STATIC);
4765 1 :
4766 1 : var _timezone=allocate(1, "i32*", ALLOC_STATIC);function _tzset() {
4767 0 : // TODO: Use (malleable) environment variables instead of system settings.
4768 0 : if (_tzset.called) return;
4769 0 : _tzset.called = true;
4770 0 :
4771 0 : HEAP32[((_timezone)>>2)]=-(new Date()).getTimezoneOffset() * 60;
4772 0 :
4773 0 : var winter = new Date(2000, 0, 1);
4774 0 : var summer = new Date(2000, 6, 1);
4775 0 : HEAP32[((_daylight)>>2)]=Number(winter.getTimezoneOffset() != summer.getTimezoneOffset());
4776 0 :
4777 0 : var winterName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | winter.toString().match(/\(([A-Z]+)\)/)[1];
4778 0 : var summerName = 'GMT'; // XXX do not rely on browser timezone info, it is very unpredictable | summer.toString().match(/\(([A-Z]+)\)/)[1];
4779 0 : var winterNamePtr = allocate(intArrayFromString(winterName), 'i8', ALLOC_NORMAL);
4780 0 : var summerNamePtr = allocate(intArrayFromString(summerName), 'i8', ALLOC_NORMAL);
4781 0 : HEAP32[((_tzname)>>2)]=winterNamePtr;
4782 0 : HEAP32[(((_tzname)+(4))>>2)]=summerNamePtr;
4783 1 : }function _mktime(tmPtr) {
4784 0 : _tzset();
4785 0 : var year = HEAP32[(((tmPtr)+(20))>>2)];
4786 0 : var timestamp = new Date(year >= 1900 ? year : year + 1900,
4787 0 : HEAP32[(((tmPtr)+(16))>>2)],
4788 0 : HEAP32[(((tmPtr)+(12))>>2)],
4789 0 : HEAP32[(((tmPtr)+(8))>>2)],
4790 0 : HEAP32[(((tmPtr)+(4))>>2)],
4791 0 : HEAP32[((tmPtr)>>2)],
4792 0 : 0).getTime() / 1000;
4793 0 : HEAP32[(((tmPtr)+(24))>>2)]=new Date(timestamp).getDay();
4794 0 : var yday = Math.round((timestamp - (new Date(year, 0, 1)).getTime()) / (1000 * 60 * 60 * 24));
4795 0 : HEAP32[(((tmPtr)+(28))>>2)]=yday;
4796 0 : return timestamp;
4797 1 : }
4798 1 :
4799 1 : function _isalpha(chr) {
4800 0 : return (chr >= 97 && chr <= 122) ||
4801 0 : (chr >= 65 && chr <= 90);
4802 1 : }
4803 1 :
4804 1 :
4805 1 : function _malloc(bytes) {
4806 0 : /* Over-allocate to make sure it is byte-aligned by 8.
4807 0 : * This will leak memory, but this is only the dummy
4808 0 : * implementation (replaced by dlmalloc normally) so
4809 0 : * not an issue.
4810 0 : */
4811 0 : var ptr = Runtime.dynamicAlloc(bytes + 8);
4812 0 : return (ptr+8) & 0xFFFFFFF8;
4813 1 : }
4814 1 : Module["_malloc"] = _malloc;function _tmpnam(s, dir, prefix) {
4815 0 : // char *tmpnam(char *s);
4816 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpnam.html
4817 0 : // NOTE: The dir and prefix arguments are for internal use only.
4818 0 : var folder = FS.findObject(dir || '/tmp');
4819 0 : if (!folder || !folder.isFolder) {
4820 0 : dir = '/tmp';
4821 0 : folder = FS.findObject(dir);
4822 0 : if (!folder || !folder.isFolder) return 0;
4823 0 : }
4824 0 : var name = prefix || 'file';
4825 0 : do {
4826 0 : name += String.fromCharCode(65 + Math.floor(Math.random() * 25));
4827 0 : } while (name in folder.contents);
4828 0 : var result = dir + '/' + name;
4829 0 : if (!_tmpnam.buffer) _tmpnam.buffer = _malloc(256);
4830 0 : if (!s) s = _tmpnam.buffer;
4831 0 : writeAsciiToMemory(result, s);
4832 0 : return s;
4833 1 : }
4834 1 :
4835 1 : var Browser={mainLoop:{scheduler:null,method:"",shouldPause:false,paused:false,queue:[],pause:function () {
4836 0 : Browser.mainLoop.shouldPause = true;
4837 1 : },resume:function () {
4838 0 : if (Browser.mainLoop.paused) {
4839 0 : Browser.mainLoop.paused = false;
4840 0 : Browser.mainLoop.scheduler();
4841 0 : }
4842 0 : Browser.mainLoop.shouldPause = false;
4843 1 : },updateStatus:function () {
4844 0 : if (Module['setStatus']) {
4845 0 : var message = Module['statusMessage'] || 'Please wait...';
4846 0 : var remaining = Browser.mainLoop.remainingBlockers;
4847 0 : var expected = Browser.mainLoop.expectedBlockers;
4848 0 : if (remaining) {
4849 0 : if (remaining < expected) {
4850 0 : Module['setStatus'](message + ' (' + (expected - remaining) + '/' + expected + ')');
4851 0 : } else {
4852 0 : Module['setStatus'](message);
4853 0 : }
4854 0 : } else {
4855 0 : Module['setStatus']('');
4856 0 : }
4857 0 : }
4858 1 : }},isFullScreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function () {
4859 0 : if (!Module["preloadPlugins"]) Module["preloadPlugins"] = []; // needs to exist even in workers
4860 0 :
4861 0 : if (Browser.initted || ENVIRONMENT_IS_WORKER) return;
4862 0 : Browser.initted = true;
4863 0 :
4864 0 : try {
4865 0 : new Blob();
4866 0 : Browser.hasBlobConstructor = true;
4867 0 : } catch(e) {
4868 0 : Browser.hasBlobConstructor = false;
4869 0 : console.log("warning: no blob constructor, cannot create blobs with mimetypes");
4870 0 : }
4871 0 : Browser.BlobBuilder = typeof MozBlobBuilder != "undefined" ? MozBlobBuilder : (typeof WebKitBlobBuilder != "undefined" ? WebKitBlobBuilder : (!Browser.hasBlobConstructor ? console.log("warning: no BlobBuilder") : null));
4872 0 : Browser.URLObject = typeof window != "undefined" ? (window.URL ? window.URL : window.webkitURL) : undefined;
4873 0 : if (!Module.noImageDecoding && typeof Browser.URLObject === 'undefined') {
4874 0 : console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");
4875 0 : Module.noImageDecoding = true;
4876 0 : }
4877 0 :
4878 0 : // Support for plugins that can process preloaded files. You can add more of these to
4879 0 : // your app by creating and appending to Module.preloadPlugins.
4880 0 : //
4881 0 : // Each plugin is asked if it can handle a file based on the file's name. If it can,
4882 0 : // it is given the file's raw data. When it is done, it calls a callback with the file's
4883 0 : // (possibly modified) data. For example, a plugin might decompress a file, or it
4884 0 : // might create some side data structure for use later (like an Image element, etc.).
4885 0 :
4886 0 : var imagePlugin = {};
4887 0 : imagePlugin['canHandle'] = function imagePlugin_canHandle(name) {
4888 0 : return !Module.noImageDecoding && /\.(jpg|jpeg|png|bmp)$/i.test(name);
4889 0 : };
4890 0 : imagePlugin['handle'] = function imagePlugin_handle(byteArray, name, onload, onerror) {
4891 0 : var b = null;
4892 0 : if (Browser.hasBlobConstructor) {
4893 0 : try {
4894 0 : b = new Blob([byteArray], { type: Browser.getMimetype(name) });
4895 0 : if (b.size !== byteArray.length) { // Safari bug #118630
4896 0 : // Safari's Blob can only take an ArrayBuffer
4897 0 : b = new Blob([(new Uint8Array(byteArray)).buffer], { type: Browser.getMimetype(name) });
4898 0 : }
4899 0 : } catch(e) {
4900 0 : Runtime.warnOnce('Blob constructor present but fails: ' + e + '; falling back to blob builder');
4901 0 : }
4902 0 : }
4903 0 : if (!b) {
4904 0 : var bb = new Browser.BlobBuilder();
4905 0 : bb.append((new Uint8Array(byteArray)).buffer); // we need to pass a buffer, and must copy the array to get the right data range
4906 0 : b = bb.getBlob();
4907 0 : }
4908 0 : var url = Browser.URLObject.createObjectURL(b);
4909 0 : var img = new Image();
4910 0 : img.onload = function img_onload() {
4911 0 : assert(img.complete, 'Image ' + name + ' could not be decoded');
4912 0 : var canvas = document.createElement('canvas');
4913 0 : canvas.width = img.width;
4914 0 : canvas.height = img.height;
4915 0 : var ctx = canvas.getContext('2d');
4916 0 : ctx.drawImage(img, 0, 0);
4917 0 : Module["preloadedImages"][name] = canvas;
4918 0 : Browser.URLObject.revokeObjectURL(url);
4919 0 : if (onload) onload(byteArray);
4920 0 : };
4921 0 : img.onerror = function img_onerror(event) {
4922 0 : console.log('Image ' + url + ' could not be decoded');
4923 0 : if (onerror) onerror();
4924 0 : };
4925 0 : img.src = url;
4926 0 : };
4927 0 : Module['preloadPlugins'].push(imagePlugin);
4928 0 :
4929 0 : var audioPlugin = {};
4930 0 : audioPlugin['canHandle'] = function audioPlugin_canHandle(name) {
4931 0 : return !Module.noAudioDecoding && name.substr(-4) in { '.ogg': 1, '.wav': 1, '.mp3': 1 };
4932 0 : };
4933 0 : audioPlugin['handle'] = function audioPlugin_handle(byteArray, name, onload, onerror) {
4934 0 : var done = false;
4935 0 : function finish(audio) {
4936 0 : if (done) return;
4937 0 : done = true;
4938 0 : Module["preloadedAudios"][name] = audio;
4939 0 : if (onload) onload(byteArray);
4940 0 : }
4941 0 : function fail() {
4942 0 : if (done) return;
4943 0 : done = true;
4944 0 : Module["preloadedAudios"][name] = new Audio(); // empty shim
4945 0 : if (onerror) onerror();
4946 0 : }
4947 0 : if (Browser.hasBlobConstructor) {
4948 0 : try {
4949 0 : var b = new Blob([byteArray], { type: Browser.getMimetype(name) });
4950 0 : } catch(e) {
4951 0 : return fail();
4952 0 : }
4953 0 : var url = Browser.URLObject.createObjectURL(b); // XXX we never revoke this!
4954 0 : var audio = new Audio();
4955 0 : audio.addEventListener('canplaythrough', function() { finish(audio) }, false); // use addEventListener due to chromium bug 124926
4956 0 : audio.onerror = function audio_onerror(event) {
4957 0 : if (done) return;
4958 0 : console.log('warning: browser could not fully decode audio ' + name + ', trying slower base64 approach');
4959 0 : function encode64(data) {
4960 0 : var BASE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
4961 0 : var PAD = '=';
4962 0 : var ret = '';
4963 0 : var leftchar = 0;
4964 0 : var leftbits = 0;
4965 0 : for (var i = 0; i < data.length; i++) {
4966 0 : leftchar = (leftchar << 8) | data[i];
4967 0 : leftbits += 8;
4968 0 : while (leftbits >= 6) {
4969 0 : var curr = (leftchar >> (leftbits-6)) & 0x3f;
4970 0 : leftbits -= 6;
4971 0 : ret += BASE[curr];
4972 0 : }
4973 0 : }
4974 0 : if (leftbits == 2) {
4975 0 : ret += BASE[(leftchar&3) << 4];
4976 0 : ret += PAD + PAD;
4977 0 : } else if (leftbits == 4) {
4978 0 : ret += BASE[(leftchar&0xf) << 2];
4979 0 : ret += PAD;
4980 0 : }
4981 0 : return ret;
4982 0 : }
4983 0 : audio.src = 'data:audio/x-' + name.substr(-3) + ';base64,' + encode64(byteArray);
4984 0 : finish(audio); // we don't wait for confirmation this worked - but it's worth trying
4985 0 : };
4986 0 : audio.src = url;
4987 0 : // workaround for chrome bug 124926 - we do not always get oncanplaythrough or onerror
4988 0 : Browser.safeSetTimeout(function() {
4989 0 : finish(audio); // try to use it even though it is not necessarily ready to play
4990 0 : }, 10000);
4991 0 : } else {
4992 0 : return fail();
4993 0 : }
4994 0 : };
4995 0 : Module['preloadPlugins'].push(audioPlugin);
4996 0 :
4997 0 : // Canvas event setup
4998 0 :
4999 0 : var canvas = Module['canvas'];
5000 0 :
5001 0 : // forced aspect ratio can be enabled by defining 'forcedAspectRatio' on Module
5002 0 : // Module['forcedAspectRatio'] = 4 / 3;
5003 0 :
5004 0 : canvas.requestPointerLock = canvas['requestPointerLock'] ||
5005 0 : canvas['mozRequestPointerLock'] ||
5006 0 : canvas['webkitRequestPointerLock'] ||
5007 0 : canvas['msRequestPointerLock'] ||
5008 0 : function(){};
5009 0 : canvas.exitPointerLock = document['exitPointerLock'] ||
5010 0 : document['mozExitPointerLock'] ||
5011 0 : document['webkitExitPointerLock'] ||
5012 0 : document['msExitPointerLock'] ||
5013 0 : function(){}; // no-op if function does not exist
5014 0 : canvas.exitPointerLock = canvas.exitPointerLock.bind(document);
5015 0 :
5016 0 : function pointerLockChange() {
5017 0 : Browser.pointerLock = document['pointerLockElement'] === canvas ||
5018 0 : document['mozPointerLockElement'] === canvas ||
5019 0 : document['webkitPointerLockElement'] === canvas ||
5020 0 : document['msPointerLockElement'] === canvas;
5021 0 : }
5022 0 :
5023 0 : document.addEventListener('pointerlockchange', pointerLockChange, false);
5024 0 : document.addEventListener('mozpointerlockchange', pointerLockChange, false);
5025 0 : document.addEventListener('webkitpointerlockchange', pointerLockChange, false);
5026 0 : document.addEventListener('mspointerlockchange', pointerLockChange, false);
5027 0 :
5028 0 : if (Module['elementPointerLock']) {
5029 0 : canvas.addEventListener("click", function(ev) {
5030 0 : if (!Browser.pointerLock && canvas.requestPointerLock) {
5031 0 : canvas.requestPointerLock();
5032 0 : ev.preventDefault();
5033 0 : }
5034 0 : }, false);
5035 0 : }
5036 1 : },createContext:function (canvas, useWebGL, setInModule, webGLContextAttributes) {
5037 0 : var ctx;
5038 0 : var errorInfo = '?';
5039 0 : function onContextCreationError(event) {
5040 0 : errorInfo = event.statusMessage || errorInfo;
5041 0 : }
5042 0 : try {
5043 0 : if (useWebGL) {
5044 0 : var contextAttributes = {
5045 0 : antialias: false,
5046 0 : alpha: false
5047 0 : };
5048 0 :
5049 0 : if (webGLContextAttributes) {
5050 0 : for (var attribute in webGLContextAttributes) {
5051 0 : contextAttributes[attribute] = webGLContextAttributes[attribute];
5052 0 : }
5053 0 : }
5054 0 :
5055 0 :
5056 0 : canvas.addEventListener('webglcontextcreationerror', onContextCreationError, false);
5057 0 : try {
5058 0 : ['experimental-webgl', 'webgl'].some(function(webglId) {
5059 0 : return ctx = canvas.getContext(webglId, contextAttributes);
5060 0 : });
5061 0 : } finally {
5062 0 : canvas.removeEventListener('webglcontextcreationerror', onContextCreationError, false);
5063 0 : }
5064 0 : } else {
5065 0 : ctx = canvas.getContext('2d');
5066 0 : }
5067 0 : if (!ctx) throw ':(';
5068 0 : } catch (e) {
5069 0 : Module.print('Could not create canvas: ' + [errorInfo, e]);
5070 0 : return null;
5071 0 : }
5072 0 : if (useWebGL) {
5073 0 : // Set the background of the WebGL canvas to black
5074 0 : canvas.style.backgroundColor = "black";
5075 0 :
5076 0 : // Warn on context loss
5077 0 : canvas.addEventListener('webglcontextlost', function(event) {
5078 0 : alert('WebGL context lost. You will need to reload the page.');
5079 0 : }, false);
5080 0 : }
5081 0 : if (setInModule) {
5082 0 : GLctx = Module.ctx = ctx;
5083 0 : Module.useWebGL = useWebGL;
5084 0 : Browser.moduleContextCreatedCallbacks.forEach(function(callback) { callback() });
5085 0 : Browser.init();
5086 0 : }
5087 0 : return ctx;
5088 1 : },destroyContext:function (canvas, useWebGL, setInModule) {},fullScreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullScreen:function (lockPointer, resizeCanvas) {
5089 0 : Browser.lockPointer = lockPointer;
5090 0 : Browser.resizeCanvas = resizeCanvas;
5091 0 : if (typeof Browser.lockPointer === 'undefined') Browser.lockPointer = true;
5092 0 : if (typeof Browser.resizeCanvas === 'undefined') Browser.resizeCanvas = false;
5093 0 :
5094 0 : var canvas = Module['canvas'];
5095 0 : function fullScreenChange() {
5096 0 : Browser.isFullScreen = false;
5097 0 : var canvasContainer = canvas.parentNode;
5098 0 : if ((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
5099 0 : document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
5100 0 : document['fullScreenElement'] || document['fullscreenElement'] ||
5101 0 : document['msFullScreenElement'] || document['msFullscreenElement'] ||
5102 0 : document['webkitCurrentFullScreenElement']) === canvasContainer) {
5103 0 : canvas.cancelFullScreen = document['cancelFullScreen'] ||
5104 0 : document['mozCancelFullScreen'] ||
5105 0 : document['webkitCancelFullScreen'] ||
5106 0 : document['msExitFullscreen'] ||
5107 0 : document['exitFullscreen'] ||
5108 0 : function() {};
5109 0 : canvas.cancelFullScreen = canvas.cancelFullScreen.bind(document);
5110 0 : if (Browser.lockPointer) canvas.requestPointerLock();
5111 0 : Browser.isFullScreen = true;
5112 0 : if (Browser.resizeCanvas) Browser.setFullScreenCanvasSize();
5113 0 : } else {
5114 0 :
5115 0 : // remove the full screen specific parent of the canvas again to restore the HTML structure from before going full screen
5116 0 : canvasContainer.parentNode.insertBefore(canvas, canvasContainer);
5117 0 : canvasContainer.parentNode.removeChild(canvasContainer);
5118 0 :
5119 0 : if (Browser.resizeCanvas) Browser.setWindowedCanvasSize();
5120 0 : }
5121 0 : if (Module['onFullScreen']) Module['onFullScreen'](Browser.isFullScreen);
5122 0 : Browser.updateCanvasDimensions(canvas);
5123 0 : }
5124 0 :
5125 0 : if (!Browser.fullScreenHandlersInstalled) {
5126 0 : Browser.fullScreenHandlersInstalled = true;
5127 0 : document.addEventListener('fullscreenchange', fullScreenChange, false);
5128 0 : document.addEventListener('mozfullscreenchange', fullScreenChange, false);
5129 0 : document.addEventListener('webkitfullscreenchange', fullScreenChange, false);
5130 0 : document.addEventListener('MSFullscreenChange', fullScreenChange, false);
5131 0 : }
5132 0 :
5133 0 : // create a new parent to ensure the canvas has no siblings. this allows browsers to optimize full screen performance when its parent is the full screen root
5134 0 : var canvasContainer = document.createElement("div");
5135 0 : canvas.parentNode.insertBefore(canvasContainer, canvas);
5136 0 : canvasContainer.appendChild(canvas);
5137 0 :
5138 0 : // use parent of canvas as full screen root to allow aspect ratio correction (Firefox stretches the root to screen size)
5139 0 : canvasContainer.requestFullScreen = canvasContainer['requestFullScreen'] ||
5140 0 : canvasContainer['mozRequestFullScreen'] ||
5141 0 : canvasContainer['msRequestFullscreen'] ||
5142 0 : (canvasContainer['webkitRequestFullScreen'] ? function() { canvasContainer['webkitRequestFullScreen'](Element['ALLOW_KEYBOARD_INPUT']) } : null);
5143 0 : canvasContainer.requestFullScreen();
5144 1 : },requestAnimationFrame:function requestAnimationFrame(func) {
5145 0 : if (typeof window === 'undefined') { // Provide fallback to setTimeout if window is undefined (e.g. in Node.js)
5146 0 : setTimeout(func, 1000/60);
5147 0 : } else {
5148 0 : if (!window.requestAnimationFrame) {
5149 0 : window.requestAnimationFrame = window['requestAnimationFrame'] ||
5150 0 : window['mozRequestAnimationFrame'] ||
5151 0 : window['webkitRequestAnimationFrame'] ||
5152 0 : window['msRequestAnimationFrame'] ||
5153 0 : window['oRequestAnimationFrame'] ||
5154 0 : window['setTimeout'];
5155 0 : }
5156 0 : window.requestAnimationFrame(func);
5157 0 : }
5158 1 : },safeCallback:function (func) {
5159 0 : return function() {
5160 0 : if (!ABORT) return func.apply(null, arguments);
5161 0 : };
5162 1 : },safeRequestAnimationFrame:function (func) {
5163 0 : return Browser.requestAnimationFrame(function() {
5164 0 : if (!ABORT) func();
5165 0 : });
5166 1 : },safeSetTimeout:function (func, timeout) {
5167 0 : return setTimeout(function() {
5168 0 : if (!ABORT) func();
5169 0 : }, timeout);
5170 1 : },safeSetInterval:function (func, timeout) {
5171 0 : return setInterval(function() {
5172 0 : if (!ABORT) func();
5173 0 : }, timeout);
5174 1 : },getMimetype:function (name) {
5175 0 : return {
5176 0 : 'jpg': 'image/jpeg',
5177 0 : 'jpeg': 'image/jpeg',
5178 0 : 'png': 'image/png',
5179 0 : 'bmp': 'image/bmp',
5180 0 : 'ogg': 'audio/ogg',
5181 0 : 'wav': 'audio/wav',
5182 0 : 'mp3': 'audio/mpeg'
5183 0 : }[name.substr(name.lastIndexOf('.')+1)];
5184 1 : },getUserMedia:function (func) {
5185 0 : if(!window.getUserMedia) {
5186 0 : window.getUserMedia = navigator['getUserMedia'] ||
5187 0 : navigator['mozGetUserMedia'];
5188 0 : }
5189 0 : window.getUserMedia(func);
5190 1 : },getMovementX:function (event) {
5191 0 : return event['movementX'] ||
5192 0 : event['mozMovementX'] ||
5193 0 : event['webkitMovementX'] ||
5194 0 : 0;
5195 1 : },getMovementY:function (event) {
5196 0 : return event['movementY'] ||
5197 0 : event['mozMovementY'] ||
5198 0 : event['webkitMovementY'] ||
5199 0 : 0;
5200 1 : },getMouseWheelDelta:function (event) {
5201 0 : return Math.max(-1, Math.min(1, event.type === 'DOMMouseScroll' ? event.detail : -event.wheelDelta));
5202 1 : },mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,calculateMouseEvent:function (event) { // event should be mousemove, mousedown or mouseup
5203 0 : if (Browser.pointerLock) {
5204 0 : // When the pointer is locked, calculate the coordinates
5205 0 : // based on the movement of the mouse.
5206 0 : // Workaround for Firefox bug 764498
5207 0 : if (event.type != 'mousemove' &&
5208 0 : ('mozMovementX' in event)) {
5209 0 : Browser.mouseMovementX = Browser.mouseMovementY = 0;
5210 0 : } else {
5211 0 : Browser.mouseMovementX = Browser.getMovementX(event);
5212 0 : Browser.mouseMovementY = Browser.getMovementY(event);
5213 0 : }
5214 0 :
5215 0 : // check if SDL is available
5216 0 : if (typeof SDL != "undefined") {
5217 0 : Browser.mouseX = SDL.mouseX + Browser.mouseMovementX;
5218 0 : Browser.mouseY = SDL.mouseY + Browser.mouseMovementY;
5219 0 : } else {
5220 0 : // just add the mouse delta to the current absolut mouse position
5221 0 : // FIXME: ideally this should be clamped against the canvas size and zero
5222 0 : Browser.mouseX += Browser.mouseMovementX;
5223 0 : Browser.mouseY += Browser.mouseMovementY;
5224 0 : }
5225 0 : } else {
5226 0 : // Otherwise, calculate the movement based on the changes
5227 0 : // in the coordinates.
5228 0 : var rect = Module["canvas"].getBoundingClientRect();
5229 0 : var x, y;
5230 0 :
5231 0 : // Neither .scrollX or .pageXOffset are defined in a spec, but
5232 0 : // we prefer .scrollX because it is currently in a spec draft.
5233 0 : // (see: http://www.w3.org/TR/2013/WD-cssom-view-20131217/)
5234 0 : var scrollX = ((typeof window.scrollX !== 'undefined') ? window.scrollX : window.pageXOffset);
5235 0 : var scrollY = ((typeof window.scrollY !== 'undefined') ? window.scrollY : window.pageYOffset);
5236 0 : if (event.type == 'touchstart' ||
5237 0 : event.type == 'touchend' ||
5238 0 : event.type == 'touchmove') {
5239 0 : var t = event.touches.item(0);
5240 0 : if (t) {
5241 0 : x = t.pageX - (scrollX + rect.left);
5242 0 : y = t.pageY - (scrollY + rect.top);
5243 0 : } else {
5244 0 : return;
5245 0 : }
5246 0 : } else {
5247 0 : x = event.pageX - (scrollX + rect.left);
5248 0 : y = event.pageY - (scrollY + rect.top);
5249 0 : }
5250 0 :
5251 0 : // the canvas might be CSS-scaled compared to its backbuffer;
5252 0 : // SDL-using content will want mouse coordinates in terms
5253 0 : // of backbuffer units.
5254 0 : var cw = Module["canvas"].width;
5255 0 : var ch = Module["canvas"].height;
5256 0 : x = x * (cw / rect.width);
5257 0 : y = y * (ch / rect.height);
5258 0 :
5259 0 : Browser.mouseMovementX = x - Browser.mouseX;
5260 0 : Browser.mouseMovementY = y - Browser.mouseY;
5261 0 : Browser.mouseX = x;
5262 0 : Browser.mouseY = y;
5263 0 : }
5264 1 : },xhrLoad:function (url, onload, onerror) {
5265 0 : var xhr = new XMLHttpRequest();
5266 0 : xhr.open('GET', url, true);
5267 0 : xhr.responseType = 'arraybuffer';
5268 0 : xhr.onload = function xhr_onload() {
5269 0 : if (xhr.status == 200 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
5270 0 : onload(xhr.response);
5271 0 : } else {
5272 0 : onerror();
5273 0 : }
5274 0 : };
5275 0 : xhr.onerror = onerror;
5276 0 : xhr.send(null);
5277 1 : },asyncLoad:function (url, onload, onerror, noRunDep) {
5278 0 : Browser.xhrLoad(url, function(arrayBuffer) {
5279 0 : assert(arrayBuffer, 'Loading data file "' + url + '" failed (no arrayBuffer).');
5280 0 : onload(new Uint8Array(arrayBuffer));
5281 0 : if (!noRunDep) removeRunDependency('al ' + url);
5282 0 : }, function(event) {
5283 0 : if (onerror) {
5284 0 : onerror();
5285 0 : } else {
5286 0 : throw 'Loading data file "' + url + '" failed.';
5287 0 : }
5288 0 : });
5289 0 : if (!noRunDep) addRunDependency('al ' + url);
5290 1 : },resizeListeners:[],updateResizeListeners:function () {
5291 0 : var canvas = Module['canvas'];
5292 0 : Browser.resizeListeners.forEach(function(listener) {
5293 0 : listener(canvas.width, canvas.height);
5294 0 : });
5295 1 : },setCanvasSize:function (width, height, noUpdates) {
5296 0 : var canvas = Module['canvas'];
5297 0 : Browser.updateCanvasDimensions(canvas, width, height);
5298 0 : if (!noUpdates) Browser.updateResizeListeners();
5299 1 : },windowedWidth:0,windowedHeight:0,setFullScreenCanvasSize:function () {
5300 0 : // check if SDL is available
5301 0 : if (typeof SDL != "undefined") {
5302 0 : var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
5303 0 : flags = flags | 0x00800000; // set SDL_FULLSCREEN flag
5304 0 : HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
5305 0 : }
5306 0 : Browser.updateResizeListeners();
5307 1 : },setWindowedCanvasSize:function () {
5308 0 : // check if SDL is available
5309 0 : if (typeof SDL != "undefined") {
5310 0 : var flags = HEAPU32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)];
5311 0 : flags = flags & ~0x00800000; // clear SDL_FULLSCREEN flag
5312 0 : HEAP32[((SDL.screen+Runtime.QUANTUM_SIZE*0)>>2)]=flags
5313 0 : }
5314 0 : Browser.updateResizeListeners();
5315 1 : },updateCanvasDimensions:function (canvas, wNative, hNative) {
5316 0 : if (wNative && hNative) {
5317 0 : canvas.widthNative = wNative;
5318 0 : canvas.heightNative = hNative;
5319 0 : } else {
5320 0 : wNative = canvas.widthNative;
5321 0 : hNative = canvas.heightNative;
5322 0 : }
5323 0 : var w = wNative;
5324 0 : var h = hNative;
5325 0 : if (Module['forcedAspectRatio'] && Module['forcedAspectRatio'] > 0) {
5326 0 : if (w/h < Module['forcedAspectRatio']) {
5327 0 : w = Math.round(h * Module['forcedAspectRatio']);
5328 0 : } else {
5329 0 : h = Math.round(w / Module['forcedAspectRatio']);
5330 0 : }
5331 0 : }
5332 0 : if (((document['webkitFullScreenElement'] || document['webkitFullscreenElement'] ||
5333 0 : document['mozFullScreenElement'] || document['mozFullscreenElement'] ||
5334 0 : document['fullScreenElement'] || document['fullscreenElement'] ||
5335 0 : document['msFullScreenElement'] || document['msFullscreenElement'] ||
5336 0 : document['webkitCurrentFullScreenElement']) === canvas.parentNode) && (typeof screen != 'undefined')) {
5337 0 : var factor = Math.min(screen.width / w, screen.height / h);
5338 0 : w = Math.round(w * factor);
5339 0 : h = Math.round(h * factor);
5340 0 : }
5341 0 : if (Browser.resizeCanvas) {
5342 0 : if (canvas.width != w) canvas.width = w;
5343 0 : if (canvas.height != h) canvas.height = h;
5344 0 : if (typeof canvas.style != 'undefined') {
5345 0 : canvas.style.removeProperty( "width");
5346 0 : canvas.style.removeProperty("height");
5347 0 : }
5348 0 : } else {
5349 0 : if (canvas.width != wNative) canvas.width = wNative;
5350 0 : if (canvas.height != hNative) canvas.height = hNative;
5351 0 : if (typeof canvas.style != 'undefined') {
5352 0 : if (w != wNative || h != hNative) {
5353 0 : canvas.style.setProperty( "width", w + "px", "important");
5354 0 : canvas.style.setProperty("height", h + "px", "important");
5355 0 : } else {
5356 0 : canvas.style.removeProperty( "width");
5357 0 : canvas.style.removeProperty("height");
5358 0 : }
5359 0 : }
5360 0 : }
5361 1 : }};
5362 1 :
5363 1 : function _log10(x) {
5364 0 : return Math.log(x) / Math.LN10;
5365 1 : }
5366 1 :
5367 35 : function _isspace(chr) {
5368 35 : return (chr == 32) || (chr >= 9 && chr <= 13);
5369 35 : }
5370 1 :
5371 1 :
5372 1 : var ___tm_current=allocate(44, "i8", ALLOC_STATIC);
5373 1 :
5374 1 :
5375 1 : var ___tm_timezone=allocate(intArrayFromString("GMT"), "i8", ALLOC_STATIC);function _localtime_r(time, tmPtr) {
5376 0 : _tzset();
5377 0 : var date = new Date(HEAP32[((time)>>2)]*1000);
5378 0 : HEAP32[((tmPtr)>>2)]=date.getSeconds();
5379 0 : HEAP32[(((tmPtr)+(4))>>2)]=date.getMinutes();
5380 0 : HEAP32[(((tmPtr)+(8))>>2)]=date.getHours();
5381 0 : HEAP32[(((tmPtr)+(12))>>2)]=date.getDate();
5382 0 : HEAP32[(((tmPtr)+(16))>>2)]=date.getMonth();
5383 0 : HEAP32[(((tmPtr)+(20))>>2)]=date.getFullYear()-1900;
5384 0 : HEAP32[(((tmPtr)+(24))>>2)]=date.getDay();
5385 0 :
5386 0 : var start = new Date(date.getFullYear(), 0, 1);
5387 0 : var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
5388 0 : HEAP32[(((tmPtr)+(28))>>2)]=yday;
5389 0 : HEAP32[(((tmPtr)+(36))>>2)]=start.getTimezoneOffset() * 60;
5390 0 :
5391 0 : var dst = Number(start.getTimezoneOffset() != date.getTimezoneOffset());
5392 0 : HEAP32[(((tmPtr)+(32))>>2)]=dst;
5393 0 :
5394 0 : HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
5395 0 :
5396 0 : return tmPtr;
5397 1 : }function _localtime(time) {
5398 0 : return _localtime_r(time, ___tm_current);
5399 1 : }
5400 1 :
5401 1 : function _srand(seed) {
5402 0 : HEAP32[((___rand_seed)>>2)]=seed
5403 1 : }
5404 1 :
5405 1 : var _emscripten_prep_setjmp=true;
5406 1 :
5407 1 :
5408 1 :
5409 1 :
5410 1 : Module["_testSetjmp"] = _testSetjmp;function _longjmp(env, value) {
5411 0 : asm['setThrew'](env, value || 1);
5412 0 : throw 'longjmp';
5413 1 : }function _emscripten_longjmp(env, value) {
5414 0 : _longjmp(env, value);
5415 1 : }
5416 1 :
5417 1 : var _ceil=Math_ceil;
5418 1 :
5419 1 :
5420 1 : function _emscripten_memcpy_big(dest, src, num) {
5421 0 : HEAPU8.set(HEAPU8.subarray(src, src+num), dest);
5422 0 : return dest;
5423 1 : }
5424 1 : Module["_memcpy"] = _memcpy;
5425 1 :
5426 1 : var _llvm_pow_f64=Math_pow;
5427 1 :
5428 1 :
5429 1 :
5430 1 : Module["_strlen"] = _strlen;function _fputs(s, stream) {
5431 0 : // int fputs(const char *restrict s, FILE *restrict stream);
5432 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fputs.html
5433 0 : var fd = _fileno(stream);
5434 0 : return _write(fd, s, _strlen(s));
5435 1 : }
5436 1 :
5437 224 : function _sbrk(bytes) {
5438 224 : // Implement a Linux-like 'memory area' for our 'process'.
5439 224 : // Changes the size of the memory area by |bytes|; returns the
5440 224 : // address of the previous top ('break') of the memory area
5441 224 : // We control the "dynamic" memory - DYNAMIC_BASE to DYNAMICTOP
5442 224 : var self = _sbrk;
5443 224 : if (!self.called) {
5444 224 : DYNAMICTOP = alignMemoryPage(DYNAMICTOP); // make sure we start out aligned
5445 224 : self.called = true;
5446 224 : assert(Runtime.dynamicAlloc);
5447 224 : self.alloc = Runtime.dynamicAlloc;
5448 224 : Runtime.dynamicAlloc = function() { abort('cannot dynamically allocate, sbrk now has control') };
5449 224 : }
5450 224 : var ret = DYNAMICTOP;
5451 224 : if (bytes != 0) self.alloc(bytes);
5452 224 : return ret; // Previous break location.
5453 224 : }
5454 1 :
5455 1 :
5456 1 : function _sinh(x) {
5457 0 : var p = Math.pow(Math.E, x);
5458 0 : return (p - (1 / p)) / 2;
5459 1 : }
5460 1 :
5461 1 : function _cosh(x) {
5462 0 : var p = Math.pow(Math.E, x);
5463 0 : return (p + (1 / p)) / 2;
5464 1 : }function _tanh(x) {
5465 0 : return _sinh(x) / _cosh(x);
5466 1 : }
5467 1 :
5468 2 : function _signal(sig, func) {
5469 2 : // TODO
5470 2 : return 0;
5471 2 : }
5472 1 :
5473 1 :
5474 1 :
5475 1 : function __getFloat(text) {
5476 0 : return /^[+-]?[0-9]*\.?[0-9]+([eE][+-]?[0-9]+)?/.exec(text);
5477 1 : }function __scanString(format, get, unget, varargs) {
5478 0 : if (!__scanString.whiteSpace) {
5479 0 : __scanString.whiteSpace = {};
5480 0 : __scanString.whiteSpace[32] = 1;
5481 0 : __scanString.whiteSpace[9] = 1;
5482 0 : __scanString.whiteSpace[10] = 1;
5483 0 : __scanString.whiteSpace[11] = 1;
5484 0 : __scanString.whiteSpace[12] = 1;
5485 0 : __scanString.whiteSpace[13] = 1;
5486 0 : }
5487 0 : // Supports %x, %4x, %d.%d, %lld, %s, %f, %lf.
5488 0 : // TODO: Support all format specifiers.
5489 0 : format = Pointer_stringify(format);
5490 0 : var soFar = 0;
5491 0 : if (format.indexOf('%n') >= 0) {
5492 0 : // need to track soFar
5493 0 : var _get = get;
5494 0 : get = function get() {
5495 0 : soFar++;
5496 0 : return _get();
5497 0 : }
5498 0 : var _unget = unget;
5499 0 : unget = function unget() {
5500 0 : soFar--;
5501 0 : return _unget();
5502 0 : }
5503 0 : }
5504 0 : var formatIndex = 0;
5505 0 : var argsi = 0;
5506 0 : var fields = 0;
5507 0 : var argIndex = 0;
5508 0 : var next;
5509 0 :
5510 0 : mainLoop:
5511 0 : for (var formatIndex = 0; formatIndex < format.length;) {
5512 0 : if (format[formatIndex] === '%' && format[formatIndex+1] == 'n') {
5513 0 : var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
5514 0 : argIndex += Runtime.getAlignSize('void*', null, true);
5515 0 : HEAP32[((argPtr)>>2)]=soFar;
5516 0 : formatIndex += 2;
5517 0 : continue;
5518 0 : }
5519 0 :
5520 0 : if (format[formatIndex] === '%') {
5521 0 : var nextC = format.indexOf('c', formatIndex+1);
5522 0 : if (nextC > 0) {
5523 0 : var maxx = 1;
5524 0 : if (nextC > formatIndex+1) {
5525 0 : var sub = format.substring(formatIndex+1, nextC);
5526 0 : maxx = parseInt(sub);
5527 0 : if (maxx != sub) maxx = 0;
5528 0 : }
5529 0 : if (maxx) {
5530 0 : var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
5531 0 : argIndex += Runtime.getAlignSize('void*', null, true);
5532 0 : fields++;
5533 0 : for (var i = 0; i < maxx; i++) {
5534 0 : next = get();
5535 0 : HEAP8[((argPtr++)|0)]=next;
5536 0 : if (next === 0) return i > 0 ? fields : fields-1; // we failed to read the full length of this field
5537 0 : }
5538 0 : formatIndex += nextC - formatIndex + 1;
5539 0 : continue;
5540 0 : }
5541 0 : }
5542 0 : }
5543 0 :
5544 0 : // handle %[...]
5545 0 : if (format[formatIndex] === '%' && format.indexOf('[', formatIndex+1) > 0) {
5546 0 : var match = /\%([0-9]*)\[(\^)?(\]?[^\]]*)\]/.exec(format.substring(formatIndex));
5547 0 : if (match) {
5548 0 : var maxNumCharacters = parseInt(match[1]) || Infinity;
5549 0 : var negateScanList = (match[2] === '^');
5550 0 : var scanList = match[3];
5551 0 :
5552 0 : // expand "middle" dashs into character sets
5553 0 : var middleDashMatch;
5554 0 : while ((middleDashMatch = /([^\-])\-([^\-])/.exec(scanList))) {
5555 0 : var rangeStartCharCode = middleDashMatch[1].charCodeAt(0);
5556 0 : var rangeEndCharCode = middleDashMatch[2].charCodeAt(0);
5557 0 : for (var expanded = ''; rangeStartCharCode <= rangeEndCharCode; expanded += String.fromCharCode(rangeStartCharCode++));
5558 0 : scanList = scanList.replace(middleDashMatch[1] + '-' + middleDashMatch[2], expanded);
5559 0 : }
5560 0 :
5561 0 : var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
5562 0 : argIndex += Runtime.getAlignSize('void*', null, true);
5563 0 : fields++;
5564 0 :
5565 0 : for (var i = 0; i < maxNumCharacters; i++) {
5566 0 : next = get();
5567 0 : if (negateScanList) {
5568 0 : if (scanList.indexOf(String.fromCharCode(next)) < 0) {
5569 0 : HEAP8[((argPtr++)|0)]=next;
5570 0 : } else {
5571 0 : unget();
5572 0 : break;
5573 0 : }
5574 0 : } else {
5575 0 : if (scanList.indexOf(String.fromCharCode(next)) >= 0) {
5576 0 : HEAP8[((argPtr++)|0)]=next;
5577 0 : } else {
5578 0 : unget();
5579 0 : break;
5580 0 : }
5581 0 : }
5582 0 : }
5583 0 :
5584 0 : // write out null-terminating character
5585 0 : HEAP8[((argPtr++)|0)]=0;
5586 0 : formatIndex += match[0].length;
5587 0 :
5588 0 : continue;
5589 0 : }
5590 0 : }
5591 0 : // remove whitespace
5592 0 : while (1) {
5593 0 : next = get();
5594 0 : if (next == 0) return fields;
5595 0 : if (!(next in __scanString.whiteSpace)) break;
5596 0 : }
5597 0 : unget();
5598 0 :
5599 0 : if (format[formatIndex] === '%') {
5600 0 : formatIndex++;
5601 0 : var suppressAssignment = false;
5602 0 : if (format[formatIndex] == '*') {
5603 0 : suppressAssignment = true;
5604 0 : formatIndex++;
5605 0 : }
5606 0 : var maxSpecifierStart = formatIndex;
5607 0 : while (format[formatIndex].charCodeAt(0) >= 48 &&
5608 0 : format[formatIndex].charCodeAt(0) <= 57) {
5609 0 : formatIndex++;
5610 0 : }
5611 0 : var max_;
5612 0 : if (formatIndex != maxSpecifierStart) {
5613 0 : max_ = parseInt(format.slice(maxSpecifierStart, formatIndex), 10);
5614 0 : }
5615 0 : var long_ = false;
5616 0 : var half = false;
5617 0 : var longLong = false;
5618 0 : if (format[formatIndex] == 'l') {
5619 0 : long_ = true;
5620 0 : formatIndex++;
5621 0 : if (format[formatIndex] == 'l') {
5622 0 : longLong = true;
5623 0 : formatIndex++;
5624 0 : }
5625 0 : } else if (format[formatIndex] == 'h') {
5626 0 : half = true;
5627 0 : formatIndex++;
5628 0 : }
5629 0 : var type = format[formatIndex];
5630 0 : formatIndex++;
5631 0 : var curr = 0;
5632 0 : var buffer = [];
5633 0 : // Read characters according to the format. floats are trickier, they may be in an unfloat state in the middle, then be a valid float later
5634 0 : if (type == 'f' || type == 'e' || type == 'g' ||
5635 0 : type == 'F' || type == 'E' || type == 'G') {
5636 0 : next = get();
5637 0 : while (next > 0 && (!(next in __scanString.whiteSpace))) {
5638 0 : buffer.push(String.fromCharCode(next));
5639 0 : next = get();
5640 0 : }
5641 0 : var m = __getFloat(buffer.join(''));
5642 0 : var last = m ? m[0].length : 0;
5643 0 : for (var i = 0; i < buffer.length - last + 1; i++) {
5644 0 : unget();
5645 0 : }
5646 0 : buffer.length = last;
5647 0 : } else {
5648 0 : next = get();
5649 0 : var first = true;
5650 0 :
5651 0 : // Strip the optional 0x prefix for %x.
5652 0 : if ((type == 'x' || type == 'X') && (next == 48)) {
5653 0 : var peek = get();
5654 0 : if (peek == 120 || peek == 88) {
5655 0 : next = get();
5656 0 : } else {
5657 0 : unget();
5658 0 : }
5659 0 : }
5660 0 :
5661 0 : while ((curr < max_ || isNaN(max_)) && next > 0) {
5662 0 : if (!(next in __scanString.whiteSpace) && // stop on whitespace
5663 0 : (type == 's' ||
5664 0 : ((type === 'd' || type == 'u' || type == 'i') && ((next >= 48 && next <= 57) ||
5665 0 : (first && next == 45))) ||
5666 0 : ((type === 'x' || type === 'X') && (next >= 48 && next <= 57 ||
5667 0 : next >= 97 && next <= 102 ||
5668 0 : next >= 65 && next <= 70))) &&
5669 0 : (formatIndex >= format.length || next !== format[formatIndex].charCodeAt(0))) { // Stop when we read something that is coming up
5670 0 : buffer.push(String.fromCharCode(next));
5671 0 : next = get();
5672 0 : curr++;
5673 0 : first = false;
5674 0 : } else {
5675 0 : break;
5676 0 : }
5677 0 : }
5678 0 : unget();
5679 0 : }
5680 0 : if (buffer.length === 0) return 0; // Failure.
5681 0 : if (suppressAssignment) continue;
5682 0 :
5683 0 : var text = buffer.join('');
5684 0 : var argPtr = HEAP32[(((varargs)+(argIndex))>>2)];
5685 0 : argIndex += Runtime.getAlignSize('void*', null, true);
5686 0 : switch (type) {
5687 0 : case 'd': case 'u': case 'i':
5688 0 : if (half) {
5689 0 : HEAP16[((argPtr)>>1)]=parseInt(text, 10);
5690 0 : } else if (longLong) {
5691 0 : (tempI64 = [parseInt(text, 10)>>>0,(tempDouble=parseInt(text, 10),(+(Math_abs(tempDouble))) >= (+1) ? (tempDouble > (+0) ? ((Math_min((+(Math_floor((tempDouble)/(+4294967296)))), (+4294967295)))|0)>>>0 : (~~((+(Math_ceil((tempDouble - +(((~~(tempDouble)))>>>0))/(+4294967296))))))>>>0) : 0)],HEAP32[((argPtr)>>2)]=tempI64[0],HEAP32[(((argPtr)+(4))>>2)]=tempI64[1]);
5692 0 : } else {
5693 0 : HEAP32[((argPtr)>>2)]=parseInt(text, 10);
5694 0 : }
5695 0 : break;
5696 0 : case 'X':
5697 0 : case 'x':
5698 0 : HEAP32[((argPtr)>>2)]=parseInt(text, 16);
5699 0 : break;
5700 0 : case 'F':
5701 0 : case 'f':
5702 0 : case 'E':
5703 0 : case 'e':
5704 0 : case 'G':
5705 0 : case 'g':
5706 0 : case 'E':
5707 0 : // fallthrough intended
5708 0 : if (long_) {
5709 0 : HEAPF64[((argPtr)>>3)]=parseFloat(text);
5710 0 : } else {
5711 0 : HEAPF32[((argPtr)>>2)]=parseFloat(text);
5712 0 : }
5713 0 : break;
5714 0 : case 's':
5715 0 : var array = intArrayFromString(text);
5716 0 : for (var j = 0; j < array.length; j++) {
5717 0 : HEAP8[(((argPtr)+(j))|0)]=array[j];
5718 0 : }
5719 0 : break;
5720 0 : }
5721 0 : fields++;
5722 0 : } else if (format[formatIndex].charCodeAt(0) in __scanString.whiteSpace) {
5723 0 : next = get();
5724 0 : while (next in __scanString.whiteSpace) {
5725 0 : if (next <= 0) break mainLoop; // End of input.
5726 0 : next = get();
5727 0 : }
5728 0 : unget(next);
5729 0 : formatIndex++;
5730 0 : } else {
5731 0 : // Not a specifier.
5732 0 : next = get();
5733 0 : if (format[formatIndex].charCodeAt(0) !== next) {
5734 0 : unget(next);
5735 0 : break mainLoop;
5736 0 : }
5737 0 : formatIndex++;
5738 0 : }
5739 0 : }
5740 0 : return fields;
5741 1 : }
5742 1 :
5743 1 : function _fgetc(stream) {
5744 1 : // int fgetc(FILE *stream);
5745 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgetc.html
5746 1 : var streamObj = FS.getStreamFromPtr(stream);
5747 1 : if (!streamObj) return -1;
5748 1 : if (streamObj.eof || streamObj.error) return -1;
5749 1 : var ret = _fread(_fgetc.ret, 1, 1, stream);
5750 1 : if (ret == 0) {
5751 1 : return -1;
5752 1 : } else if (ret == -1) {
5753 1 : streamObj.error = true;
5754 1 : return -1;
5755 1 : } else {
5756 1 : return HEAPU8[((_fgetc.ret)|0)];
5757 1 : }
5758 1 : }
5759 1 :
5760 1 : function _ungetc(c, stream) {
5761 0 : // int ungetc(int c, FILE *stream);
5762 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/ungetc.html
5763 0 : stream = FS.getStreamFromPtr(stream);
5764 0 : if (!stream) {
5765 0 : return -1;
5766 0 : }
5767 0 : if (c === -1) {
5768 0 : // do nothing for EOF character
5769 0 : return c;
5770 0 : }
5771 0 : c = unSign(c & 0xFF);
5772 0 : stream.ungotten.push(c);
5773 0 : stream.eof = false;
5774 0 : return c;
5775 1 : }function _fscanf(stream, format, varargs) {
5776 0 : // int fscanf(FILE *restrict stream, const char *restrict format, ... );
5777 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/scanf.html
5778 0 : var streamObj = FS.getStreamFromPtr(stream);
5779 0 : if (!streamObj) {
5780 0 : return -1;
5781 0 : }
5782 0 : var buffer = [];
5783 0 : function get() {
5784 0 : var c = _fgetc(stream);
5785 0 : buffer.push(c);
5786 0 : return c;
5787 0 : };
5788 0 : function unget() {
5789 0 : _ungetc(buffer.pop(), stream);
5790 0 : };
5791 0 : return __scanString(format, get, unget, varargs);
5792 1 : }
5793 1 :
5794 1 : var _emscripten_preinvoke=true;
5795 1 :
5796 1 : function _localeconv() {
5797 0 : // %struct.timeval = type { char* decimal point, other stuff... }
5798 0 : // var indexes = Runtime.calculateStructAlignment({ fields: ['i32', 'i32'] });
5799 0 : var me = _localeconv;
5800 0 : if (!me.ret) {
5801 0 : // These are defaults from the "C" locale
5802 0 : me.ret = allocate([
5803 0 : allocate(intArrayFromString('.'), 'i8', ALLOC_NORMAL),0,0,0, // decimal_point
5804 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // thousands_sep
5805 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // grouping
5806 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // int_curr_symbol
5807 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // currency_symbol
5808 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_decimal_point
5809 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_thousands_sep
5810 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // mon_grouping
5811 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0, // positive_sign
5812 0 : allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL),0,0,0 // negative_sign
5813 0 : ], 'i8*', ALLOC_NORMAL); // Allocate strings in lconv, still don't allocate chars
5814 0 : }
5815 0 : return me.ret;
5816 1 : }
5817 1 :
5818 1 :
5819 1 : function _unlink(path) {
5820 0 : // int unlink(const char *path);
5821 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/unlink.html
5822 0 : path = Pointer_stringify(path);
5823 0 : try {
5824 0 : FS.unlink(path);
5825 0 : return 0;
5826 0 : } catch (e) {
5827 0 : FS.handleFSError(e);
5828 0 : return -1;
5829 0 : }
5830 1 : }
5831 1 :
5832 1 : function _rmdir(path) {
5833 0 : // int rmdir(const char *path);
5834 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/rmdir.html
5835 0 : path = Pointer_stringify(path);
5836 0 : try {
5837 0 : FS.rmdir(path);
5838 0 : return 0;
5839 0 : } catch (e) {
5840 0 : FS.handleFSError(e);
5841 0 : return -1;
5842 0 : }
5843 1 : }function _remove(path) {
5844 0 : // int remove(const char *path);
5845 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/remove.html
5846 0 : var ret = _unlink(path);
5847 0 : if (ret == -1) ret = _rmdir(path);
5848 0 : return ret;
5849 1 : }
5850 1 :
5851 1 : function _freopen(filename, mode, stream) {
5852 0 : // FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict stream);
5853 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/freopen.html
5854 0 : if (!filename) {
5855 0 : var streamObj = FS.getStreamFromPtr(stream);
5856 0 : if (!streamObj) {
5857 0 : ___setErrNo(ERRNO_CODES.EBADF);
5858 0 : return 0;
5859 0 : }
5860 0 : if (_freopen.buffer) _free(_freopen.buffer);
5861 0 : filename = intArrayFromString(streamObj.path);
5862 0 : filename = allocate(filename, 'i8', ALLOC_NORMAL);
5863 0 : }
5864 0 : _fclose(stream);
5865 0 : return _fopen(filename, mode);
5866 1 : }
5867 1 :
5868 1 :
5869 1 : function _rename(old_path, new_path) {
5870 0 : // int rename(const char *old, const char *new);
5871 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/rename.html
5872 0 : old_path = Pointer_stringify(old_path);
5873 0 : new_path = Pointer_stringify(new_path);
5874 0 : try {
5875 0 : FS.rename(old_path, new_path);
5876 0 : return 0;
5877 0 : } catch (e) {
5878 0 : FS.handleFSError(e);
5879 0 : return -1;
5880 0 : }
5881 1 : }
5882 1 :
5883 1 : function _tmpfile() {
5884 0 : // FILE *tmpfile(void);
5885 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/tmpfile.html
5886 0 : // TODO: Delete the created file on closing.
5887 0 : if (_tmpfile.mode) {
5888 0 : _tmpfile.mode = allocate(intArrayFromString('w+'), 'i8', ALLOC_NORMAL);
5889 0 : }
5890 0 : return _fopen(_tmpnam(0), _tmpfile.mode);
5891 1 : }
5892 1 :
5893 1 : function _sysconf(name) {
5894 1 : // long sysconf(int name);
5895 1 : // http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
5896 1 : switch(name) {
5897 1 : case 30: return PAGE_SIZE;
5898 1 : case 132:
5899 1 : case 133:
5900 1 : case 12:
5901 1 : case 137:
5902 1 : case 138:
5903 1 : case 15:
5904 1 : case 235:
5905 1 : case 16:
5906 1 : case 17:
5907 1 : case 18:
5908 1 : case 19:
5909 1 : case 20:
5910 1 : case 149:
5911 1 : case 13:
5912 1 : case 10:
5913 1 : case 236:
5914 1 : case 153:
5915 1 : case 9:
5916 1 : case 21:
5917 1 : case 22:
5918 1 : case 159:
5919 1 : case 154:
5920 1 : case 14:
5921 1 : case 77:
5922 1 : case 78:
5923 1 : case 139:
5924 1 : case 80:
5925 1 : case 81:
5926 1 : case 79:
5927 1 : case 82:
5928 1 : case 68:
5929 1 : case 67:
5930 1 : case 164:
5931 1 : case 11:
5932 1 : case 29:
5933 1 : case 47:
5934 1 : case 48:
5935 1 : case 95:
5936 1 : case 52:
5937 1 : case 51:
5938 1 : case 46:
5939 1 : return 200809;
5940 1 : case 27:
5941 1 : case 246:
5942 1 : case 127:
5943 1 : case 128:
5944 1 : case 23:
5945 1 : case 24:
5946 1 : case 160:
5947 1 : case 161:
5948 1 : case 181:
5949 1 : case 182:
5950 1 : case 242:
5951 1 : case 183:
5952 1 : case 184:
5953 1 : case 243:
5954 1 : case 244:
5955 1 : case 245:
5956 1 : case 165:
5957 1 : case 178:
5958 1 : case 179:
5959 1 : case 49:
5960 1 : case 50:
5961 1 : case 168:
5962 1 : case 169:
5963 1 : case 175:
5964 1 : case 170:
5965 1 : case 171:
5966 1 : case 172:
5967 1 : case 97:
5968 1 : case 76:
5969 1 : case 32:
5970 1 : case 173:
5971 1 : case 35:
5972 1 : return -1;
5973 1 : case 176:
5974 1 : case 177:
5975 1 : case 7:
5976 1 : case 155:
5977 1 : case 8:
5978 1 : case 157:
5979 1 : case 125:
5980 1 : case 126:
5981 1 : case 92:
5982 1 : case 93:
5983 1 : case 129:
5984 1 : case 130:
5985 1 : case 131:
5986 1 : case 94:
5987 1 : case 91:
5988 1 : return 1;
5989 1 : case 74:
5990 1 : case 60:
5991 1 : case 69:
5992 1 : case 70:
5993 1 : case 4:
5994 1 : return 1024;
5995 1 : case 31:
5996 1 : case 42:
5997 1 : case 72:
5998 1 : return 32;
5999 1 : case 87:
6000 1 : case 26:
6001 1 : case 33:
6002 1 : return 2147483647;
6003 1 : case 34:
6004 1 : case 1:
6005 1 : return 47839;
6006 1 : case 38:
6007 1 : case 36:
6008 1 : return 99;
6009 1 : case 43:
6010 1 : case 37:
6011 1 : return 2048;
6012 1 : case 0: return 2097152;
6013 1 : case 3: return 65536;
6014 1 : case 28: return 32768;
6015 1 : case 44: return 32767;
6016 1 : case 75: return 16384;
6017 1 : case 39: return 1000;
6018 1 : case 89: return 700;
6019 1 : case 71: return 256;
6020 1 : case 40: return 255;
6021 1 : case 2: return 100;
6022 1 : case 180: return 64;
6023 1 : case 25: return 20;
6024 1 : case 5: return 16;
6025 1 : case 6: return 6;
6026 1 : case 73: return 4;
6027 1 : case 84: return 1;
6028 1 : }
6029 1 : ___setErrNo(ERRNO_CODES.EINVAL);
6030 1 : return -1;
6031 1 : }
6032 1 :
6033 1 :
6034 1 : function ___errno_location() {
6035 0 : return ___errno_state;
6036 1 : }
6037 1 :
6038 1 :
6039 1 : Module["_memset"] = _memset;
6040 1 :
6041 1 :
6042 1 :
6043 1 : Module["_bitshift64Shl"] = _bitshift64Shl;
6044 1 :
6045 1 : function _abort() {
6046 0 : Module['abort']();
6047 1 : }
6048 1 :
6049 1 :
6050 1 :
6051 1 : function __reallyNegative(x) {
6052 0 : return x < 0 || (x === 0 && (1/x) === -Infinity);
6053 13 : }function __formatString(format, varargs) {
6054 13 : var textIndex = format;
6055 13 : var argIndex = 0;
6056 13 : function getNextArg(type) {
6057 13 : // NOTE: Explicitly ignoring type safety. Otherwise this fails:
6058 13 : // int x = 4; printf("%c\n", (char)x);
6059 13 : var ret;
6060 13 : if (type === 'double') {
6061 13 : ret = HEAPF64[(((varargs)+(argIndex))>>3)];
6062 13 : } else if (type == 'i64') {
6063 13 : ret = [HEAP32[(((varargs)+(argIndex))>>2)],
6064 13 : HEAP32[(((varargs)+(argIndex+4))>>2)]];
6065 13 :
6066 13 : } else {
6067 13 : type = 'i32'; // varargs are always i32, i64, or double
6068 13 : ret = HEAP32[(((varargs)+(argIndex))>>2)];
6069 13 : }
6070 13 : argIndex += Runtime.getNativeFieldSize(type);
6071 13 : return ret;
6072 13 : }
6073 13 :
6074 13 : var ret = [];
6075 13 : var curr, next, currArg;
6076 13 : while(1) {
6077 13 : var startTextIndex = textIndex;
6078 13 : curr = HEAP8[(textIndex)];
6079 13 : if (curr === 0) break;
6080 13 : next = HEAP8[((textIndex+1)|0)];
6081 13 : if (curr == 37) {
6082 13 : // Handle flags.
6083 13 : var flagAlwaysSigned = false;
6084 13 : var flagLeftAlign = false;
6085 13 : var flagAlternative = false;
6086 13 : var flagZeroPad = false;
6087 13 : var flagPadSign = false;
6088 13 : flagsLoop: while (1) {
6089 13 : switch (next) {
6090 13 : case 43:
6091 13 : flagAlwaysSigned = true;
6092 13 : break;
6093 13 : case 45:
6094 13 : flagLeftAlign = true;
6095 13 : break;
6096 13 : case 35:
6097 13 : flagAlternative = true;
6098 13 : break;
6099 13 : case 48:
6100 13 : if (flagZeroPad) {
6101 13 : break flagsLoop;
6102 13 : } else {
6103 13 : flagZeroPad = true;
6104 13 : break;
6105 13 : }
6106 13 : case 32:
6107 13 : flagPadSign = true;
6108 13 : break;
6109 13 : default:
6110 13 : break flagsLoop;
6111 13 : }
6112 13 : textIndex++;
6113 13 : next = HEAP8[((textIndex+1)|0)];
6114 13 : }
6115 13 :
6116 13 : // Handle width.
6117 13 : var width = 0;
6118 13 : if (next == 42) {
6119 13 : width = getNextArg('i32');
6120 13 : textIndex++;
6121 13 : next = HEAP8[((textIndex+1)|0)];
6122 13 : } else {
6123 13 : while (next >= 48 && next <= 57) {
6124 13 : width = width * 10 + (next - 48);
6125 13 : textIndex++;
6126 13 : next = HEAP8[((textIndex+1)|0)];
6127 13 : }
6128 13 : }
6129 13 :
6130 13 : // Handle precision.
6131 13 : var precisionSet = false, precision = -1;
6132 13 : if (next == 46) {
6133 13 : precision = 0;
6134 13 : precisionSet = true;
6135 13 : textIndex++;
6136 13 : next = HEAP8[((textIndex+1)|0)];
6137 13 : if (next == 42) {
6138 13 : precision = getNextArg('i32');
6139 13 : textIndex++;
6140 13 : } else {
6141 13 : while(1) {
6142 13 : var precisionChr = HEAP8[((textIndex+1)|0)];
6143 13 : if (precisionChr < 48 ||
6144 13 : precisionChr > 57) break;
6145 13 : precision = precision * 10 + (precisionChr - 48);
6146 13 : textIndex++;
6147 13 : }
6148 13 : }
6149 13 : next = HEAP8[((textIndex+1)|0)];
6150 13 : }
6151 13 : if (precision < 0) {
6152 13 : precision = 6; // Standard default.
6153 13 : precisionSet = false;
6154 13 : }
6155 13 :
6156 13 : // Handle integer sizes. WARNING: These assume a 32-bit architecture!
6157 13 : var argSize;
6158 13 : switch (String.fromCharCode(next)) {
6159 13 : case 'h':
6160 13 : var nextNext = HEAP8[((textIndex+2)|0)];
6161 13 : if (nextNext == 104) {
6162 13 : textIndex++;
6163 13 : argSize = 1; // char (actually i32 in varargs)
6164 13 : } else {
6165 13 : argSize = 2; // short (actually i32 in varargs)
6166 13 : }
6167 13 : break;
6168 13 : case 'l':
6169 13 : var nextNext = HEAP8[((textIndex+2)|0)];
6170 13 : if (nextNext == 108) {
6171 13 : textIndex++;
6172 13 : argSize = 8; // long long
6173 13 : } else {
6174 13 : argSize = 4; // long
6175 13 : }
6176 13 : break;
6177 13 : case 'L': // long long
6178 13 : case 'q': // int64_t
6179 13 : case 'j': // intmax_t
6180 13 : argSize = 8;
6181 13 : break;
6182 13 : case 'z': // size_t
6183 13 : case 't': // ptrdiff_t
6184 13 : case 'I': // signed ptrdiff_t or unsigned size_t
6185 13 : argSize = 4;
6186 13 : break;
6187 13 : default:
6188 13 : argSize = null;
6189 13 : }
6190 13 : if (argSize) textIndex++;
6191 13 : next = HEAP8[((textIndex+1)|0)];
6192 13 :
6193 13 : // Handle type specifier.
6194 13 : switch (String.fromCharCode(next)) {
6195 13 : case 'd': case 'i': case 'u': case 'o': case 'x': case 'X': case 'p': {
6196 13 : // Integer.
6197 13 : var signed = next == 100 || next == 105;
6198 13 : argSize = argSize || 4;
6199 13 : var currArg = getNextArg('i' + (argSize * 8));
6200 13 : var origArg = currArg;
6201 13 : var argText;
6202 13 : // Flatten i64-1 [low, high] into a (slightly rounded) double
6203 13 : if (argSize == 8) {
6204 13 : currArg = Runtime.makeBigInt(currArg[0], currArg[1], next == 117);
6205 13 : }
6206 13 : // Truncate to requested size.
6207 13 : if (argSize <= 4) {
6208 13 : var limit = Math.pow(256, argSize) - 1;
6209 13 : currArg = (signed ? reSign : unSign)(currArg & limit, argSize * 8);
6210 13 : }
6211 13 : // Format the number.
6212 13 : var currAbsArg = Math.abs(currArg);
6213 13 : var prefix = '';
6214 13 : if (next == 100 || next == 105) {
6215 13 : if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], null); else
6216 13 : argText = reSign(currArg, 8 * argSize, 1).toString(10);
6217 13 : } else if (next == 117) {
6218 13 : if (argSize == 8 && i64Math) argText = i64Math.stringify(origArg[0], origArg[1], true); else
6219 13 : argText = unSign(currArg, 8 * argSize, 1).toString(10);
6220 13 : currArg = Math.abs(currArg);
6221 13 : } else if (next == 111) {
6222 13 : argText = (flagAlternative ? '0' : '') + currAbsArg.toString(8);
6223 13 : } else if (next == 120 || next == 88) {
6224 13 : prefix = (flagAlternative && currArg != 0) ? '0x' : '';
6225 13 : if (argSize == 8 && i64Math) {
6226 13 : if (origArg[1]) {
6227 13 : argText = (origArg[1]>>>0).toString(16);
6228 13 : var lower = (origArg[0]>>>0).toString(16);
6229 13 : while (lower.length < 8) lower = '0' + lower;
6230 13 : argText += lower;
6231 13 : } else {
6232 13 : argText = (origArg[0]>>>0).toString(16);
6233 13 : }
6234 13 : } else
6235 13 : if (currArg < 0) {
6236 13 : // Represent negative numbers in hex as 2's complement.
6237 13 : currArg = -currArg;
6238 13 : argText = (currAbsArg - 1).toString(16);
6239 13 : var buffer = [];
6240 13 : for (var i = 0; i < argText.length; i++) {
6241 13 : buffer.push((0xF - parseInt(argText[i], 16)).toString(16));
6242 13 : }
6243 13 : argText = buffer.join('');
6244 13 : while (argText.length < argSize * 2) argText = 'f' + argText;
6245 13 : } else {
6246 13 : argText = currAbsArg.toString(16);
6247 13 : }
6248 13 : if (next == 88) {
6249 13 : prefix = prefix.toUpperCase();
6250 13 : argText = argText.toUpperCase();
6251 13 : }
6252 13 : } else if (next == 112) {
6253 13 : if (currAbsArg === 0) {
6254 13 : argText = '(nil)';
6255 13 : } else {
6256 13 : prefix = '0x';
6257 13 : argText = currAbsArg.toString(16);
6258 13 : }
6259 13 : }
6260 13 : if (precisionSet) {
6261 13 : while (argText.length < precision) {
6262 13 : argText = '0' + argText;
6263 13 : }
6264 13 : }
6265 13 :
6266 13 : // Add sign if needed
6267 13 : if (currArg >= 0) {
6268 13 : if (flagAlwaysSigned) {
6269 13 : prefix = '+' + prefix;
6270 13 : } else if (flagPadSign) {
6271 13 : prefix = ' ' + prefix;
6272 13 : }
6273 13 : }
6274 13 :
6275 13 : // Move sign to prefix so we zero-pad after the sign
6276 13 : if (argText.charAt(0) == '-') {
6277 13 : prefix = '-' + prefix;
6278 13 : argText = argText.substr(1);
6279 13 : }
6280 13 :
6281 13 : // Add padding.
6282 13 : while (prefix.length + argText.length < width) {
6283 13 : if (flagLeftAlign) {
6284 13 : argText += ' ';
6285 13 : } else {
6286 13 : if (flagZeroPad) {
6287 13 : argText = '0' + argText;
6288 13 : } else {
6289 13 : prefix = ' ' + prefix;
6290 13 : }
6291 13 : }
6292 13 : }
6293 13 :
6294 13 : // Insert the result into the buffer.
6295 13 : argText = prefix + argText;
6296 31 : argText.split('').forEach(function(chr) {
6297 31 : ret.push(chr.charCodeAt(0));
6298 31 : });
6299 13 : break;
6300 13 : }
6301 13 : case 'f': case 'F': case 'e': case 'E': case 'g': case 'G': {
6302 13 : // Float.
6303 13 : var currArg = getNextArg('double');
6304 13 : var argText;
6305 13 : if (isNaN(currArg)) {
6306 13 : argText = 'nan';
6307 13 : flagZeroPad = false;
6308 13 : } else if (!isFinite(currArg)) {
6309 13 : argText = (currArg < 0 ? '-' : '') + 'inf';
6310 13 : flagZeroPad = false;
6311 13 : } else {
6312 13 : var isGeneral = false;
6313 13 : var effectivePrecision = Math.min(precision, 20);
6314 13 :
6315 13 : // Convert g/G to f/F or e/E, as per:
6316 13 : // http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html
6317 13 : if (next == 103 || next == 71) {
6318 13 : isGeneral = true;
6319 13 : precision = precision || 1;
6320 13 : var exponent = parseInt(currArg.toExponential(effectivePrecision).split('e')[1], 10);
6321 13 : if (precision > exponent && exponent >= -4) {
6322 13 : next = ((next == 103) ? 'f' : 'F').charCodeAt(0);
6323 13 : precision -= exponent + 1;
6324 13 : } else {
6325 13 : next = ((next == 103) ? 'e' : 'E').charCodeAt(0);
6326 13 : precision--;
6327 13 : }
6328 13 : effectivePrecision = Math.min(precision, 20);
6329 13 : }
6330 13 :
6331 13 : if (next == 101 || next == 69) {
6332 13 : argText = currArg.toExponential(effectivePrecision);
6333 13 : // Make sure the exponent has at least 2 digits.
6334 13 : if (/[eE][-+]\d$/.test(argText)) {
6335 13 : argText = argText.slice(0, -1) + '0' + argText.slice(-1);
6336 13 : }
6337 13 : } else if (next == 102 || next == 70) {
6338 13 : argText = currArg.toFixed(effectivePrecision);
6339 13 : if (currArg === 0 && __reallyNegative(currArg)) {
6340 13 : argText = '-' + argText;
6341 13 : }
6342 13 : }
6343 13 :
6344 13 : var parts = argText.split('e');
6345 13 : if (isGeneral && !flagAlternative) {
6346 13 : // Discard trailing zeros and periods.
6347 13 : while (parts[0].length > 1 && parts[0].indexOf('.') != -1 &&
6348 13 : (parts[0].slice(-1) == '0' || parts[0].slice(-1) == '.')) {
6349 13 : parts[0] = parts[0].slice(0, -1);
6350 13 : }
6351 13 : } else {
6352 13 : // Make sure we have a period in alternative mode.
6353 13 : if (flagAlternative && argText.indexOf('.') == -1) parts[0] += '.';
6354 13 : // Zero pad until required precision.
6355 13 : while (precision > effectivePrecision++) parts[0] += '0';
6356 13 : }
6357 13 : argText = parts[0] + (parts.length > 1 ? 'e' + parts[1] : '');
6358 13 :
6359 13 : // Capitalize 'E' if needed.
6360 13 : if (next == 69) argText = argText.toUpperCase();
6361 13 :
6362 13 : // Add sign.
6363 13 : if (currArg >= 0) {
6364 13 : if (flagAlwaysSigned) {
6365 13 : argText = '+' + argText;
6366 13 : } else if (flagPadSign) {
6367 13 : argText = ' ' + argText;
6368 13 : }
6369 13 : }
6370 13 : }
6371 13 :
6372 13 : // Add padding.
6373 13 : while (argText.length < width) {
6374 13 : if (flagLeftAlign) {
6375 13 : argText += ' ';
6376 13 : } else {
6377 13 : if (flagZeroPad && (argText[0] == '-' || argText[0] == '+')) {
6378 13 : argText = argText[0] + '0' + argText.slice(1);
6379 13 : } else {
6380 13 : argText = (flagZeroPad ? '0' : ' ') + argText;
6381 13 : }
6382 13 : }
6383 13 : }
6384 13 :
6385 13 : // Adjust case.
6386 13 : if (next < 97) argText = argText.toUpperCase();
6387 13 :
6388 13 : // Insert the result into the buffer.
6389 13 : argText.split('').forEach(function(chr) {
6390 0 : ret.push(chr.charCodeAt(0));
6391 13 : });
6392 13 : break;
6393 13 : }
6394 13 : case 's': {
6395 13 : // String.
6396 13 : var arg = getNextArg('i8*');
6397 13 : var argLength = arg ? _strlen(arg) : '(null)'.length;
6398 13 : if (precisionSet) argLength = Math.min(argLength, precision);
6399 13 : if (!flagLeftAlign) {
6400 13 : while (argLength < width--) {
6401 13 : ret.push(32);
6402 13 : }
6403 13 : }
6404 13 : if (arg) {
6405 13 : for (var i = 0; i < argLength; i++) {
6406 13 : ret.push(HEAPU8[((arg++)|0)]);
6407 13 : }
6408 13 : } else {
6409 13 : ret = ret.concat(intArrayFromString('(null)'.substr(0, argLength), true));
6410 13 : }
6411 13 : if (flagLeftAlign) {
6412 13 : while (argLength < width--) {
6413 13 : ret.push(32);
6414 13 : }
6415 13 : }
6416 13 : break;
6417 13 : }
6418 13 : case 'c': {
6419 13 : // Character.
6420 13 : if (flagLeftAlign) ret.push(getNextArg('i8'));
6421 13 : while (--width > 0) {
6422 13 : ret.push(32);
6423 13 : }
6424 13 : if (!flagLeftAlign) ret.push(getNextArg('i8'));
6425 13 : break;
6426 13 : }
6427 13 : case 'n': {
6428 13 : // Write the length written so far to the next parameter.
6429 13 : var ptr = getNextArg('i32*');
6430 13 : HEAP32[((ptr)>>2)]=ret.length;
6431 13 : break;
6432 13 : }
6433 13 : case '%': {
6434 13 : // Literal percent sign.
6435 13 : ret.push(curr);
6436 13 : break;
6437 13 : }
6438 13 : default: {
6439 13 : // Unknown specifiers remain untouched.
6440 13 : for (var i = startTextIndex; i < textIndex + 2; i++) {
6441 13 : ret.push(HEAP8[(i)]);
6442 13 : }
6443 13 : }
6444 13 : }
6445 13 : textIndex += 2;
6446 13 : // TODO: Support a/A (hex float) and m (last error) specifiers.
6447 13 : // TODO: Support %1${specifier} for arg selection.
6448 13 : } else {
6449 13 : ret.push(curr);
6450 13 : textIndex += 1;
6451 13 : }
6452 13 : }
6453 13 : return ret;
6454 13 : }function _fprintf(stream, format, varargs) {
6455 0 : // int fprintf(FILE *restrict stream, const char *restrict format, ...);
6456 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
6457 0 : var result = __formatString(format, varargs);
6458 0 : var stack = Runtime.stackSave();
6459 0 : var ret = _fwrite(allocate(result, 'i8', ALLOC_STACK), 1, result.length, stream);
6460 0 : Runtime.stackRestore(stack);
6461 0 : return ret;
6462 1 : }
6463 1 :
6464 1 : function _fgets(s, n, stream) {
6465 0 : // char *fgets(char *restrict s, int n, FILE *restrict stream);
6466 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/fgets.html
6467 0 : var streamObj = FS.getStreamFromPtr(stream);
6468 0 : if (!streamObj) return 0;
6469 0 : if (streamObj.error || streamObj.eof) return 0;
6470 0 : var byte_;
6471 0 : for (var i = 0; i < n - 1 && byte_ != 10; i++) {
6472 0 : byte_ = _fgetc(stream);
6473 0 : if (byte_ == -1) {
6474 0 : if (streamObj.error || (streamObj.eof && i == 0)) return 0;
6475 0 : else if (streamObj.eof) break;
6476 0 : }
6477 0 : HEAP8[(((s)+(i))|0)]=byte_;
6478 0 : }
6479 0 : HEAP8[(((s)+(i))|0)]=0;
6480 0 : return s;
6481 1 : }
6482 1 :
6483 1 : var _tan=Math_tan;
6484 1 :
6485 1 : function _ispunct(chr) {
6486 0 : return (chr >= 33 && chr <= 47) ||
6487 0 : (chr >= 58 && chr <= 64) ||
6488 0 : (chr >= 91 && chr <= 96) ||
6489 0 : (chr >= 123 && chr <= 126);
6490 1 : }
6491 1 :
6492 3 : function _feof(stream) {
6493 3 : // int feof(FILE *stream);
6494 3 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/feof.html
6495 3 : stream = FS.getStreamFromPtr(stream);
6496 3 : return Number(stream && stream.eof);
6497 3 : }
6498 1 :
6499 1 :
6500 1 : Module["_tolower"] = _tolower;
6501 1 :
6502 1 : var _asin=Math_asin;
6503 1 :
6504 1 : function _clearerr(stream) {
6505 0 : // void clearerr(FILE *stream);
6506 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/clearerr.html
6507 0 : stream = FS.getStreamFromPtr(stream);
6508 0 : if (!stream) {
6509 0 : return;
6510 0 : }
6511 0 : stream.eof = false;
6512 0 : stream.error = false;
6513 1 : }
6514 1 :
6515 1 : var _fabs=Math_abs;
6516 1 :
6517 1 : function _clock() {
6518 0 : if (_clock.start === undefined) _clock.start = Date.now();
6519 0 : return Math.floor((Date.now() - _clock.start) * (1000000/1000));
6520 1 : }
6521 1 :
6522 1 :
6523 1 : var _getc=_fgetc;
6524 1 :
6525 1 : function _modf(x, intpart) {
6526 0 : HEAPF64[((intpart)>>3)]=Math.floor(x);
6527 0 : return x - HEAPF64[((intpart)>>3)];
6528 1 : }
6529 1 :
6530 1 : var _sqrt=Math_sqrt;
6531 1 :
6532 1 : function _isxdigit(chr) {
6533 0 : return (chr >= 48 && chr <= 57) ||
6534 0 : (chr >= 97 && chr <= 102) ||
6535 0 : (chr >= 65 && chr <= 70);
6536 1 : }
6537 1 :
6538 1 : function _ftell(stream) {
6539 0 : // long ftell(FILE *stream);
6540 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html
6541 0 : stream = FS.getStreamFromPtr(stream);
6542 0 : if (!stream) {
6543 0 : ___setErrNo(ERRNO_CODES.EBADF);
6544 0 : return -1;
6545 0 : }
6546 0 : if (FS.isChrdev(stream.node.mode)) {
6547 0 : ___setErrNo(ERRNO_CODES.ESPIPE);
6548 0 : return -1;
6549 0 : } else {
6550 0 : return stream.position;
6551 0 : }
6552 1 : }
6553 1 :
6554 1 :
6555 1 : function __exit(status) {
6556 0 : // void _exit(int status);
6557 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html
6558 0 : Module['exit'](status);
6559 1 : }function _exit(status) {
6560 0 : __exit(status);
6561 1 : }
6562 1 :
6563 1 :
6564 13 : function _snprintf(s, n, format, varargs) {
6565 13 : // int snprintf(char *restrict s, size_t n, const char *restrict format, ...);
6566 13 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
6567 13 : var result = __formatString(format, varargs);
6568 13 : var limit = (n === undefined) ? result.length
6569 13 : : Math.min(result.length, Math.max(n - 1, 0));
6570 13 : if (s < 0) {
6571 13 : s = -s;
6572 13 : var buf = _malloc(limit+1);
6573 13 : HEAP32[((s)>>2)]=buf;
6574 13 : s = buf;
6575 13 : }
6576 13 : for (var i = 0; i < limit; i++) {
6577 13 : HEAP8[(((s)+(i))|0)]=result[i];
6578 13 : }
6579 13 : if (limit < n || (n === undefined)) HEAP8[(((s)+(i))|0)]=0;
6580 13 : return result.length;
6581 13 : }function _sprintf(s, format, varargs) {
6582 13 : // int sprintf(char *restrict s, const char *restrict format, ...);
6583 13 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/printf.html
6584 13 : return _snprintf(s, undefined, format, varargs);
6585 13 : }
6586 1 :
6587 1 : var _emscripten_get_longjmp_result=true;
6588 1 :
6589 1 : var _sin=Math_sin;
6590 1 :
6591 1 :
6592 1 : function _fmod(x, y) {
6593 0 : return x % y;
6594 1 : }var _fmodl=_fmod;
6595 1 :
6596 1 :
6597 1 :
6598 1 : var _atan=Math_atan;
6599 1 :
6600 1 : function _ferror(stream) {
6601 1 : // int ferror(FILE *stream);
6602 1 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/ferror.html
6603 1 : stream = FS.getStreamFromPtr(stream);
6604 1 : return Number(stream && stream.error);
6605 1 : }
6606 1 :
6607 2 : function _time(ptr) {
6608 2 : var ret = Math.floor(Date.now()/1000);
6609 2 : if (ptr) {
6610 2 : HEAP32[((ptr)>>2)]=ret;
6611 2 : }
6612 2 : return ret;
6613 2 : }
6614 1 :
6615 1 : function _copysign(a, b) {
6616 0 : return __reallyNegative(a) === __reallyNegative(b) ? a : -a;
6617 1 : }
6618 1 :
6619 1 :
6620 1 : function _gmtime_r(time, tmPtr) {
6621 0 : var date = new Date(HEAP32[((time)>>2)]*1000);
6622 0 : HEAP32[((tmPtr)>>2)]=date.getUTCSeconds();
6623 0 : HEAP32[(((tmPtr)+(4))>>2)]=date.getUTCMinutes();
6624 0 : HEAP32[(((tmPtr)+(8))>>2)]=date.getUTCHours();
6625 0 : HEAP32[(((tmPtr)+(12))>>2)]=date.getUTCDate();
6626 0 : HEAP32[(((tmPtr)+(16))>>2)]=date.getUTCMonth();
6627 0 : HEAP32[(((tmPtr)+(20))>>2)]=date.getUTCFullYear()-1900;
6628 0 : HEAP32[(((tmPtr)+(24))>>2)]=date.getUTCDay();
6629 0 : HEAP32[(((tmPtr)+(36))>>2)]=0;
6630 0 : HEAP32[(((tmPtr)+(32))>>2)]=0;
6631 0 : var start = new Date(date); // define date using UTC, start from Jan 01 00:00:00 UTC
6632 0 : start.setUTCDate(1);
6633 0 : start.setUTCMonth(0);
6634 0 : start.setUTCHours(0);
6635 0 : start.setUTCMinutes(0);
6636 0 : start.setUTCSeconds(0);
6637 0 : start.setUTCMilliseconds(0);
6638 0 : var yday = Math.floor((date.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
6639 0 : HEAP32[(((tmPtr)+(28))>>2)]=yday;
6640 0 : HEAP32[(((tmPtr)+(40))>>2)]=___tm_timezone;
6641 0 :
6642 0 : return tmPtr;
6643 1 : }function _gmtime(time) {
6644 0 : return _gmtime_r(time, ___tm_current);
6645 1 : }
6646 1 :
6647 1 : function _isgraph(chr) {
6648 0 : return 0x20 < chr && chr < 0x7F;
6649 1 : }
6650 1 :
6651 1 :
6652 1 :
6653 1 : function _strerror_r(errnum, strerrbuf, buflen) {
6654 0 : if (errnum in ERRNO_MESSAGES) {
6655 0 : if (ERRNO_MESSAGES[errnum].length > buflen - 1) {
6656 0 : return ___setErrNo(ERRNO_CODES.ERANGE);
6657 0 : } else {
6658 0 : var msg = ERRNO_MESSAGES[errnum];
6659 0 : writeAsciiToMemory(msg, strerrbuf);
6660 0 : return 0;
6661 0 : }
6662 0 : } else {
6663 0 : return ___setErrNo(ERRNO_CODES.EINVAL);
6664 0 : }
6665 1 : }function _strerror(errnum) {
6666 0 : if (!_strerror.buffer) _strerror.buffer = _malloc(256);
6667 0 : _strerror_r(errnum, _strerror.buffer, 256);
6668 0 : return _strerror.buffer;
6669 1 : }
6670 1 :
6671 1 :
6672 1 :
6673 1 :
6674 1 :
6675 1 : var _environ=allocate(1, "i32*", ALLOC_STATIC);var ___environ=_environ;function ___buildEnvironment(env) {
6676 1 : // WARNING: Arbitrary limit!
6677 1 : var MAX_ENV_VALUES = 64;
6678 1 : var TOTAL_ENV_SIZE = 1024;
6679 1 :
6680 1 : // Statically allocate memory for the environment.
6681 1 : var poolPtr;
6682 1 : var envPtr;
6683 1 : if (!___buildEnvironment.called) {
6684 1 : ___buildEnvironment.called = true;
6685 1 : // Set default values. Use string keys for Closure Compiler compatibility.
6686 1 : ENV['USER'] = 'root';
6687 1 : ENV['PATH'] = '/';
6688 1 : ENV['PWD'] = '/';
6689 1 : ENV['HOME'] = '/home/emscripten';
6690 1 : ENV['LANG'] = 'en_US.UTF-8';
6691 1 : ENV['_'] = './this.program';
6692 1 : // Allocate memory.
6693 1 : poolPtr = allocate(TOTAL_ENV_SIZE, 'i8', ALLOC_STATIC);
6694 1 : envPtr = allocate(MAX_ENV_VALUES * 4,
6695 1 : 'i8*', ALLOC_STATIC);
6696 1 : HEAP32[((envPtr)>>2)]=poolPtr;
6697 1 : HEAP32[((_environ)>>2)]=envPtr;
6698 1 : } else {
6699 1 : envPtr = HEAP32[((_environ)>>2)];
6700 1 : poolPtr = HEAP32[((envPtr)>>2)];
6701 1 : }
6702 1 :
6703 1 : // Collect key=value lines.
6704 1 : var strings = [];
6705 1 : var totalSize = 0;
6706 1 : for (var key in env) {
6707 1 : if (typeof env[key] === 'string') {
6708 1 : var line = key + '=' + env[key];
6709 1 : strings.push(line);
6710 1 : totalSize += line.length;
6711 1 : }
6712 1 : }
6713 1 : if (totalSize > TOTAL_ENV_SIZE) {
6714 1 : throw new Error('Environment size exceeded TOTAL_ENV_SIZE!');
6715 1 : }
6716 1 :
6717 1 : // Make new.
6718 1 : var ptrSize = 4;
6719 1 : for (var i = 0; i < strings.length; i++) {
6720 1 : var line = strings[i];
6721 1 : writeAsciiToMemory(line, poolPtr);
6722 1 : HEAP32[(((envPtr)+(i * ptrSize))>>2)]=poolPtr;
6723 1 : poolPtr += line.length + 1;
6724 1 : }
6725 1 : HEAP32[(((envPtr)+(strings.length * ptrSize))>>2)]=0;
6726 6 : }var ENV={};function _getenv(name) {
6727 6 : // char *getenv(const char *name);
6728 6 : // http://pubs.opengroup.org/onlinepubs/009695399/functions/getenv.html
6729 6 : if (name === 0) return 0;
6730 6 : name = Pointer_stringify(name);
6731 6 : if (!ENV.hasOwnProperty(name)) return 0;
6732 6 :
6733 6 : if (_getenv.ret) _free(_getenv.ret);
6734 6 : _getenv.ret = allocate(intArrayFromString(ENV[name]), 'i8', ALLOC_NORMAL);
6735 6 : return _getenv.ret;
6736 6 : }
6737 1 :
6738 1 : var _emscripten_setjmp=true;
6739 1 :
6740 1 : var _cos=Math_cos;
6741 1 :
6742 1 : function _isalnum(chr) {
6743 0 : return (chr >= 48 && chr <= 57) ||
6744 0 : (chr >= 97 && chr <= 122) ||
6745 0 : (chr >= 65 && chr <= 90);
6746 1 : }
6747 1 :
6748 1 : var _BItoD=true;
6749 1 :
6750 1 : function _difftime(time1, time0) {
6751 0 : return time1 - time0;
6752 1 : }
6753 1 :
6754 1 : var _floor=Math_floor;
6755 1 :
6756 1 : function _iscntrl(chr) {
6757 0 : return (0 <= chr && chr <= 0x1F) || chr === 0x7F;
6758 1 : }
6759 1 :
6760 1 : var _atan2=Math_atan2;
6761 1 :
6762 1 : function _setvbuf(stream, buf, type, size) {
6763 0 : // int setvbuf(FILE *restrict stream, char *restrict buf, int type, size_t size);
6764 0 : // http://pubs.opengroup.org/onlinepubs/000095399/functions/setvbuf.html
6765 0 : // TODO: Implement custom buffering.
6766 0 : return 0;
6767 1 : }
6768 1 :
6769 1 : var _exp=Math_exp;
6770 1 :
6771 1 : var _copysignl=_copysign;
6772 1 :
6773 1 : function _islower(chr) {
6774 0 : return chr >= 97 && chr <= 122;
6775 1 : }
6776 1 :
6777 1 : var _acos=Math_acos;
6778 1 :
6779 1 : function _isupper(chr) {
6780 0 : return chr >= 65 && chr <= 90;
6781 1 : }
6782 1 :
6783 1 :
6784 1 : function __isLeapYear(year) {
6785 0 : return year%4 === 0 && (year%100 !== 0 || year%400 === 0);
6786 1 : }
6787 1 :
6788 1 : function __arraySum(array, index) {
6789 0 : var sum = 0;
6790 0 : for (var i = 0; i <= index; sum += array[i++]);
6791 0 : return sum;
6792 1 : }
6793 1 :
6794 1 :
6795 1 : var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];
6796 1 :
6797 1 : var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date, days) {
6798 0 : var newDate = new Date(date.getTime());
6799 0 : while(days > 0) {
6800 0 : var leap = __isLeapYear(newDate.getFullYear());
6801 0 : var currentMonth = newDate.getMonth();
6802 0 : var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];
6803 0 :
6804 0 : if (days > daysInCurrentMonth-newDate.getDate()) {
6805 0 : // we spill over to next month
6806 0 : days -= (daysInCurrentMonth-newDate.getDate()+1);
6807 0 : newDate.setDate(1);
6808 0 : if (currentMonth < 11) {
6809 0 : newDate.setMonth(currentMonth+1)
6810 0 : } else {
6811 0 : newDate.setMonth(0);
6812 0 : newDate.setFullYear(newDate.getFullYear()+1);
6813 0 : }
6814 0 : } else {
6815 0 : // we stay in current month
6816 0 : newDate.setDate(newDate.getDate()+days);
6817 0 : return newDate;
6818 0 : }
6819 0 : }
6820 0 :
6821 0 : return newDate;
6822 1 : }function _strftime(s, maxsize, format, tm) {
6823 0 : // size_t strftime(char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr);
6824 0 : // http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
6825 0 :
6826 0 : var date = {
6827 0 : tm_sec: HEAP32[((tm)>>2)],
6828 0 : tm_min: HEAP32[(((tm)+(4))>>2)],
6829 0 : tm_hour: HEAP32[(((tm)+(8))>>2)],
6830 0 : tm_mday: HEAP32[(((tm)+(12))>>2)],
6831 0 : tm_mon: HEAP32[(((tm)+(16))>>2)],
6832 0 : tm_year: HEAP32[(((tm)+(20))>>2)],
6833 0 : tm_wday: HEAP32[(((tm)+(24))>>2)],
6834 0 : tm_yday: HEAP32[(((tm)+(28))>>2)],
6835 0 : tm_isdst: HEAP32[(((tm)+(32))>>2)]
6836 0 : };
6837 0 :
6838 0 : var pattern = Pointer_stringify(format);
6839 0 :
6840 0 : // expand format
6841 0 : var EXPANSION_RULES_1 = {
6842 0 : '%c': '%a %b %d %H:%M:%S %Y', // Replaced by the locale's appropriate date and time representation - e.g., Mon Aug 3 14:02:01 2013
6843 0 : '%D': '%m/%d/%y', // Equivalent to %m / %d / %y
6844 0 : '%F': '%Y-%m-%d', // Equivalent to %Y - %m - %d
6845 0 : '%h': '%b', // Equivalent to %b
6846 0 : '%r': '%I:%M:%S %p', // Replaced by the time in a.m. and p.m. notation
6847 0 : '%R': '%H:%M', // Replaced by the time in 24-hour notation
6848 0 : '%T': '%H:%M:%S', // Replaced by the time
6849 0 : '%x': '%m/%d/%y', // Replaced by the locale's appropriate date representation
6850 0 : '%X': '%H:%M:%S', // Replaced by the locale's appropriate date representation
6851 0 : };
6852 0 : for (var rule in EXPANSION_RULES_1) {
6853 0 : pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_1[rule]);
6854 0 : }
6855 0 :
6856 0 : var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
6857 0 : var MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
6858 0 :
6859 0 : function leadingSomething(value, digits, character) {
6860 0 : var str = typeof value === 'number' ? value.toString() : (value || '');
6861 0 : while (str.length < digits) {
6862 0 : str = character[0]+str;
6863 0 : }
6864 0 : return str;
6865 0 : };
6866 0 :
6867 0 : function leadingNulls(value, digits) {
6868 0 : return leadingSomething(value, digits, '0');
6869 0 : };
6870 0 :
6871 0 : function compareByDay(date1, date2) {
6872 0 : function sgn(value) {
6873 0 : return value < 0 ? -1 : (value > 0 ? 1 : 0);
6874 0 : };
6875 0 :
6876 0 : var compare;
6877 0 : if ((compare = sgn(date1.getFullYear()-date2.getFullYear())) === 0) {
6878 0 : if ((compare = sgn(date1.getMonth()-date2.getMonth())) === 0) {
6879 0 : compare = sgn(date1.getDate()-date2.getDate());
6880 0 : }
6881 0 : }
6882 0 : return compare;
6883 0 : };
6884 0 :
6885 0 : function getFirstWeekStartDate(janFourth) {
6886 0 : switch (janFourth.getDay()) {
6887 0 : case 0: // Sunday
6888 0 : return new Date(janFourth.getFullYear()-1, 11, 29);
6889 0 : case 1: // Monday
6890 0 : return janFourth;
6891 0 : case 2: // Tuesday
6892 0 : return new Date(janFourth.getFullYear(), 0, 3);
6893 0 : case 3: // Wednesday
6894 0 : return new Date(janFourth.getFullYear(), 0, 2);
6895 0 : case 4: // Thursday
6896 0 : return new Date(janFourth.getFullYear(), 0, 1);
6897 0 : case 5: // Friday
6898 0 : return new Date(janFourth.getFullYear()-1, 11, 31);
6899 0 : case 6: // Saturday
6900 0 : return new Date(janFourth.getFullYear()-1, 11, 30);
6901 0 : }
6902 0 : };
6903 0 :
6904 0 : function getWeekBasedYear(date) {
6905 0 : var thisDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
6906 0 :
6907 0 : var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
6908 0 : var janFourthNextYear = new Date(thisDate.getFullYear()+1, 0, 4);
6909 0 :
6910 0 : var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
6911 0 : var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
6912 0 :
6913 0 : if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
6914 0 : // this date is after the start of the first week of this year
6915 0 : if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
6916 0 : return thisDate.getFullYear()+1;
6917 0 : } else {
6918 0 : return thisDate.getFullYear();
6919 0 : }
6920 0 : } else {
6921 0 : return thisDate.getFullYear()-1;
6922 0 : }
6923 0 : };
6924 0 :
6925 0 : var EXPANSION_RULES_2 = {
6926 0 : '%a': function(date) {
6927 0 : return WEEKDAYS[date.tm_wday].substring(0,3);
6928 0 : },
6929 0 : '%A': function(date) {
6930 0 : return WEEKDAYS[date.tm_wday];
6931 0 : },
6932 0 : '%b': function(date) {
6933 0 : return MONTHS[date.tm_mon].substring(0,3);
6934 0 : },
6935 0 : '%B': function(date) {
6936 0 : return MONTHS[date.tm_mon];
6937 0 : },
6938 0 : '%C': function(date) {
6939 0 : var year = date.tm_year+1900;
6940 0 : return leadingNulls(Math.floor(year/100),2);
6941 0 : },
6942 0 : '%d': function(date) {
6943 0 : return leadingNulls(date.tm_mday, 2);
6944 0 : },
6945 0 : '%e': function(date) {
6946 0 : return leadingSomething(date.tm_mday, 2, ' ');
6947 0 : },
6948 0 : '%g': function(date) {
6949 0 : // %g, %G, and %V give values according to the ISO 8601:2000 standard week-based year.
6950 0 : // In this system, weeks begin on a Monday and week 1 of the year is the week that includes
6951 0 : // January 4th, which is also the week that includes the first Thursday of the year, and
6952 0 : // is also the first week that contains at least four days in the year.
6953 0 : // If the first Monday of January is the 2nd, 3rd, or 4th, the preceding days are part of
6954 0 : // the last week of the preceding year; thus, for Saturday 2nd January 1999,
6955 0 : // %G is replaced by 1998 and %V is replaced by 53. If December 29th, 30th,
6956 0 : // or 31st is a Monday, it and any following days are part of week 1 of the following year.
6957 0 : // Thus, for Tuesday 30th December 1997, %G is replaced by 1998 and %V is replaced by 01.
6958 0 :
6959 0 : return getWeekBasedYear(date).toString().substring(2);
6960 0 : },
6961 0 : '%G': function(date) {
6962 0 : return getWeekBasedYear(date);
6963 0 : },
6964 0 : '%H': function(date) {
6965 0 : return leadingNulls(date.tm_hour, 2);
6966 0 : },
6967 0 : '%I': function(date) {
6968 0 : return leadingNulls(date.tm_hour < 13 ? date.tm_hour : date.tm_hour-12, 2);
6969 0 : },
6970 0 : '%j': function(date) {
6971 0 : // Day of the year (001-366)
6972 0 : return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon-1), 3);
6973 0 : },
6974 0 : '%m': function(date) {
6975 0 : return leadingNulls(date.tm_mon+1, 2);
6976 0 : },
6977 0 : '%M': function(date) {
6978 0 : return leadingNulls(date.tm_min, 2);
6979 0 : },
6980 0 : '%n': function() {
6981 0 : return '\n';
6982 0 : },
6983 0 : '%p': function(date) {
6984 0 : if (date.tm_hour > 0 && date.tm_hour < 13) {
6985 0 : return 'AM';
6986 0 : } else {
6987 0 : return 'PM';
6988 0 : }
6989 0 : },
6990 0 : '%S': function(date) {
6991 0 : return leadingNulls(date.tm_sec, 2);
6992 0 : },
6993 0 : '%t': function() {
6994 0 : return '\t';
6995 0 : },
6996 0 : '%u': function(date) {
6997 0 : var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
6998 0 : return day.getDay() || 7;
6999 0 : },
7000 0 : '%U': function(date) {
7001 0 : // Replaced by the week number of the year as a decimal number [00,53].
7002 0 : // The first Sunday of January is the first day of week 1;
7003 0 : // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
7004 0 : var janFirst = new Date(date.tm_year+1900, 0, 1);
7005 0 : var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7-janFirst.getDay());
7006 0 : var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
7007 0 :
7008 0 : // is target date after the first Sunday?
7009 0 : if (compareByDay(firstSunday, endDate) < 0) {
7010 0 : // calculate difference in days between first Sunday and endDate
7011 0 : var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
7012 0 : var firstSundayUntilEndJanuary = 31-firstSunday.getDate();
7013 0 : var days = firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
7014 0 : return leadingNulls(Math.ceil(days/7), 2);
7015 0 : }
7016 0 :
7017 0 : return compareByDay(firstSunday, janFirst) === 0 ? '01': '00';
7018 0 : },
7019 0 : '%V': function(date) {
7020 0 : // Replaced by the week number of the year (Monday as the first day of the week)
7021 0 : // as a decimal number [01,53]. If the week containing 1 January has four
7022 0 : // or more days in the new year, then it is considered week 1.
7023 0 : // Otherwise, it is the last week of the previous year, and the next week is week 1.
7024 0 : // Both January 4th and the first Thursday of January are always in week 1. [ tm_year, tm_wday, tm_yday]
7025 0 : var janFourthThisYear = new Date(date.tm_year+1900, 0, 4);
7026 0 : var janFourthNextYear = new Date(date.tm_year+1901, 0, 4);
7027 0 :
7028 0 : var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
7029 0 : var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
7030 0 :
7031 0 : var endDate = __addDays(new Date(date.tm_year+1900, 0, 1), date.tm_yday);
7032 0 :
7033 0 : if (compareByDay(endDate, firstWeekStartThisYear) < 0) {
7034 0 : // if given date is before this years first week, then it belongs to the 53rd week of last year
7035 0 : return '53';
7036 0 : }
7037 0 :
7038 0 : if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {
7039 0 : // if given date is after next years first week, then it belongs to the 01th week of next year
7040 0 : return '01';
7041 0 : }
7042 0 :
7043 0 : // given date is in between CW 01..53 of this calendar year
7044 0 : var daysDifference;
7045 0 : if (firstWeekStartThisYear.getFullYear() < date.tm_year+1900) {
7046 0 : // first CW of this year starts last year
7047 0 : daysDifference = date.tm_yday+32-firstWeekStartThisYear.getDate()
7048 0 : } else {
7049 0 : // first CW of this year starts this year
7050 0 : daysDifference = date.tm_yday+1-firstWeekStartThisYear.getDate();
7051 0 : }
7052 0 : return leadingNulls(Math.ceil(daysDifference/7), 2);
7053 0 : },
7054 0 : '%w': function(date) {
7055 0 : var day = new Date(date.tm_year+1900, date.tm_mon+1, date.tm_mday, 0, 0, 0, 0);
7056 0 : return day.getDay();
7057 0 : },
7058 0 : '%W': function(date) {
7059 0 : // Replaced by the week number of the year as a decimal number [00,53].
7060 0 : // The first Monday of January is the first day of week 1;
7061 0 : // days in the new year before this are in week 0. [ tm_year, tm_wday, tm_yday]
7062 0 : var janFirst = new Date(date.tm_year, 0, 1);
7063 0 : var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7-janFirst.getDay()+1);
7064 0 : var endDate = new Date(date.tm_year+1900, date.tm_mon, date.tm_mday);
7065 0 :
7066 0 : // is target date after the first Monday?
7067 0 : if (compareByDay(firstMonday, endDate) < 0) {
7068 0 : var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth()-1)-31;
7069 0 : var firstMondayUntilEndJanuary = 31-firstMonday.getDate();
7070 0 : var days = firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();
7071 0 : return leadingNulls(Math.ceil(days/7), 2);
7072 0 : }
7073 0 : return compareByDay(firstMonday, janFirst) === 0 ? '01': '00';
7074 0 : },
7075 0 : '%y': function(date) {
7076 0 : // Replaced by the last two digits of the year as a decimal number [00,99]. [ tm_year]
7077 0 : return (date.tm_year+1900).toString().substring(2);
7078 0 : },
7079 0 : '%Y': function(date) {
7080 0 : // Replaced by the year as a decimal number (for example, 1997). [ tm_year]
7081 0 : return date.tm_year+1900;
7082 0 : },
7083 0 : '%z': function(date) {
7084 0 : // Replaced by the offset from UTC in the ISO 8601:2000 standard format ( +hhmm or -hhmm ),
7085 0 : // or by no characters if no timezone is determinable.
7086 0 : // For example, "-0430" means 4 hours 30 minutes behind UTC (west of Greenwich).
7087 0 : // If tm_isdst is zero, the standard time offset is used.
7088 0 : // If tm_isdst is greater than zero, the daylight savings time offset is used.
7089 0 : // If tm_isdst is negative, no characters are returned.
7090 0 : // FIXME: we cannot determine time zone (or can we?)
7091 0 : return '';
7092 0 : },
7093 0 : '%Z': function(date) {
7094 0 : // Replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists. [ tm_isdst]
7095 0 : // FIXME: we cannot determine time zone (or can we?)
7096 0 : return '';
7097 0 : },
7098 0 : '%%': function() {
7099 0 : return '%';
7100 0 : }
7101 0 : };
7102 0 : for (var rule in EXPANSION_RULES_2) {
7103 0 : if (pattern.indexOf(rule) >= 0) {
7104 0 : pattern = pattern.replace(new RegExp(rule, 'g'), EXPANSION_RULES_2[rule](date));
7105 0 : }
7106 0 : }
7107 0 :
7108 0 : var bytes = intArrayFromString(pattern, false);
7109 0 : if (bytes.length > maxsize) {
7110 0 : return 0;
7111 0 : }
7112 0 :
7113 0 : writeArrayToMemory(bytes, s);
7114 0 : return bytes.length-1;
7115 1 : }
7116 1 :
7117 1 :
7118 1 :
7119 1 : FS.staticInit();__ATINIT__.unshift({ func: function() { if (!Module["noFSInit"] && !FS.init.initialized) FS.init() } });__ATMAIN__.push({ func: function() { FS.ignorePermissions = false } });__ATEXIT__.push({ func: function() { FS.quit() } });Module["FS_createFolder"] = FS.createFolder;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createLink"] = FS.createLink;Module["FS_createDevice"] = FS.createDevice;
7120 1 : ___errno_state = Runtime.staticAlloc(4); HEAP32[((___errno_state)>>2)]=0;
7121 1 : __ATINIT__.unshift({ func: function() { TTY.init() } });__ATEXIT__.push({ func: function() { TTY.shutdown() } });TTY.utf8 = new Runtime.UTF8Processor();
7122 1 : if (ENVIRONMENT_IS_NODE) { var fs = require("fs"); NODEFS.staticInit(); }
7123 1 : __ATINIT__.push({ func: function() { SOCKFS.root = FS.mount(SOCKFS, {}, null); } });
7124 1 : _fputc.ret = allocate([0], "i8", ALLOC_STATIC);
7125 1 : Module["requestFullScreen"] = function Module_requestFullScreen(lockPointer, resizeCanvas) { Browser.requestFullScreen(lockPointer, resizeCanvas) };
7126 1 : Module["requestAnimationFrame"] = function Module_requestAnimationFrame(func) { Browser.requestAnimationFrame(func) };
7127 1 : Module["setCanvasSize"] = function Module_setCanvasSize(width, height, noUpdates) { Browser.setCanvasSize(width, height, noUpdates) };
7128 1 : Module["pauseMainLoop"] = function Module_pauseMainLoop() { Browser.mainLoop.pause() };
7129 1 : Module["resumeMainLoop"] = function Module_resumeMainLoop() { Browser.mainLoop.resume() };
7130 1 : Module["getUserMedia"] = function Module_getUserMedia() { Browser.getUserMedia() }
7131 1 : _fgetc.ret = allocate([0], "i8", ALLOC_STATIC);
7132 1 : ___buildEnvironment(ENV);
7133 1 : STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP);
7134 1 :
7135 1 : staticSealed = true; // seal the static portion of memory
7136 1 :
7137 1 : STACK_MAX = STACK_BASE + 5242880;
7138 1 :
7139 1 : DYNAMIC_BASE = DYNAMICTOP = Runtime.alignMemory(STACK_MAX);
7140 1 :
7141 1 : assert(DYNAMIC_BASE < TOTAL_MEMORY, "TOTAL_MEMORY not big enough for stack");
7142 1 :
7143 1 : var ctlz_i8 = allocate([8,7,6,6,5,5,5,5,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], "i8", ALLOC_DYNAMIC);
7144 1 : var cttz_i8 = allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0], "i8", ALLOC_DYNAMIC);
7145 1 :
7146 1 : var Math_min = Math.min;
7147 1 : function invoke_iiii(index,a1,a2,a3) {
7148 0 : try {
7149 0 : return Module["dynCall_iiii"](index,a1,a2,a3);
7150 0 : } catch(e) {
7151 0 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7152 0 : asm["setThrew"](1, 0);
7153 0 : }
7154 1 : }
7155 1 :
7156 1 : function invoke_vi(index,a1) {
7157 0 : try {
7158 0 : Module["dynCall_vi"](index,a1);
7159 0 : } catch(e) {
7160 0 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7161 0 : asm["setThrew"](1, 0);
7162 0 : }
7163 1 : }
7164 1 :
7165 8 : function invoke_vii(index,a1,a2) {
7166 8 : try {
7167 8 : Module["dynCall_vii"](index,a1,a2);
7168 8 : } catch(e) {
7169 8 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7170 8 : asm["setThrew"](1, 0);
7171 8 : }
7172 8 : }
7173 1 :
7174 1 : function invoke_ii(index,a1) {
7175 0 : try {
7176 0 : return Module["dynCall_ii"](index,a1);
7177 0 : } catch(e) {
7178 0 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7179 0 : asm["setThrew"](1, 0);
7180 0 : }
7181 1 : }
7182 1 :
7183 1 : function invoke_iiiii(index,a1,a2,a3,a4) {
7184 0 : try {
7185 0 : return Module["dynCall_iiiii"](index,a1,a2,a3,a4);
7186 0 : } catch(e) {
7187 0 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7188 0 : asm["setThrew"](1, 0);
7189 0 : }
7190 1 : }
7191 1 :
7192 1 : function invoke_iii(index,a1,a2) {
7193 0 : try {
7194 0 : return Module["dynCall_iii"](index,a1,a2);
7195 0 : } catch(e) {
7196 0 : if (typeof e !== 'number' && e !== 'longjmp') throw e;
7197 0 : asm["setThrew"](1, 0);
7198 0 : }
7199 1 : }
7200 1 :
7201 1 : function asmPrintInt(x, y) {
7202 0 : Module.print('int ' + x + ',' + y);// + ' ' + new Error().stack);
7203 1 : }
7204 1 : function asmPrintFloat(x, y) {
7205 0 : Module.print('float ' + x + ',' + y);// + ' ' + new Error().stack);
7206 1 : }
7207 1 : // EMSCRIPTEN_START_ASM
7208 1 : var asm = (function(global, env, buffer) {
7209 1 : 'use asm';
7210 1 : var HEAP8 = new global.Int8Array(buffer);
7211 1 : var HEAP16 = new global.Int16Array(buffer);
7212 1 : var HEAP32 = new global.Int32Array(buffer);
7213 1 : var HEAPU8 = new global.Uint8Array(buffer);
7214 1 : var HEAPU16 = new global.Uint16Array(buffer);
7215 1 : var HEAPU32 = new global.Uint32Array(buffer);
7216 1 : var HEAPF32 = new global.Float32Array(buffer);
7217 1 : var HEAPF64 = new global.Float64Array(buffer);
7218 1 :
7219 1 : var STACKTOP=env.STACKTOP|0;
7220 1 : var STACK_MAX=env.STACK_MAX|0;
7221 1 : var tempDoublePtr=env.tempDoublePtr|0;
7222 1 : var ABORT=env.ABORT|0;
7223 1 : var cttz_i8=env.cttz_i8|0;
7224 1 : var ctlz_i8=env.ctlz_i8|0;
7225 1 : var ___rand_seed=env.___rand_seed|0;
7226 1 : var _stderr=env._stderr|0;
7227 1 : var _stdin=env._stdin|0;
7228 1 : var _stdout=env._stdout|0;
7229 1 :
7230 1 : var __THREW__ = 0;
7231 1 : var threwValue = 0;
7232 1 : var setjmpId = 0;
7233 1 : var undef = 0;
7234 1 : var nan = +env.NaN, inf = +env.Infinity;
7235 1 : var tempInt = 0, tempBigInt = 0, tempBigIntP = 0, tempBigIntS = 0, tempBigIntR = 0.0, tempBigIntI = 0, tempBigIntD = 0, tempValue = 0, tempDouble = 0.0;
7236 1 :
7237 1 : var tempRet0 = 0;
7238 1 : var tempRet1 = 0;
7239 1 : var tempRet2 = 0;
7240 1 : var tempRet3 = 0;
7241 1 : var tempRet4 = 0;
7242 1 : var tempRet5 = 0;
7243 1 : var tempRet6 = 0;
7244 1 : var tempRet7 = 0;
7245 1 : var tempRet8 = 0;
7246 1 : var tempRet9 = 0;
7247 1 : var Math_floor=global.Math.floor;
7248 1 : var Math_abs=global.Math.abs;
7249 1 : var Math_sqrt=global.Math.sqrt;
7250 1 : var Math_pow=global.Math.pow;
7251 1 : var Math_cos=global.Math.cos;
7252 1 : var Math_sin=global.Math.sin;
7253 1 : var Math_tan=global.Math.tan;
7254 1 : var Math_acos=global.Math.acos;
7255 1 : var Math_asin=global.Math.asin;
7256 1 : var Math_atan=global.Math.atan;
7257 1 : var Math_atan2=global.Math.atan2;
7258 1 : var Math_exp=global.Math.exp;
7259 1 : var Math_log=global.Math.log;
7260 1 : var Math_ceil=global.Math.ceil;
7261 1 : var Math_imul=global.Math.imul;
7262 1 : var abort=env.abort;
7263 1 : var assert=env.assert;
7264 1 : var asmPrintInt=env.asmPrintInt;
7265 1 : var asmPrintFloat=env.asmPrintFloat;
7266 1 : var Math_min=env.min;
7267 1 : var invoke_iiii=env.invoke_iiii;
7268 1 : var invoke_vi=env.invoke_vi;
7269 1 : var invoke_vii=env.invoke_vii;
7270 1 : var invoke_ii=env.invoke_ii;
7271 1 : var invoke_iiiii=env.invoke_iiiii;
7272 1 : var invoke_iii=env.invoke_iii;
7273 1 : var _isalnum=env._isalnum;
7274 1 : var _fabs=env._fabs;
7275 1 : var _frexp=env._frexp;
7276 1 : var _exp=env._exp;
7277 1 : var _fread=env._fread;
7278 1 : var __reallyNegative=env.__reallyNegative;
7279 1 : var _longjmp=env._longjmp;
7280 1 : var __addDays=env.__addDays;
7281 1 : var _fsync=env._fsync;
7282 1 : var _signal=env._signal;
7283 1 : var _rename=env._rename;
7284 1 : var _sbrk=env._sbrk;
7285 1 : var _emscripten_memcpy_big=env._emscripten_memcpy_big;
7286 1 : var _sinh=env._sinh;
7287 1 : var _sysconf=env._sysconf;
7288 1 : var _close=env._close;
7289 1 : var _ferror=env._ferror;
7290 1 : var _clock=env._clock;
7291 1 : var _cos=env._cos;
7292 1 : var _tanh=env._tanh;
7293 1 : var _unlink=env._unlink;
7294 1 : var _write=env._write;
7295 1 : var __isLeapYear=env.__isLeapYear;
7296 1 : var _ftell=env._ftell;
7297 1 : var _isupper=env._isupper;
7298 1 : var _gmtime_r=env._gmtime_r;
7299 1 : var _islower=env._islower;
7300 1 : var _tmpnam=env._tmpnam;
7301 1 : var _tmpfile=env._tmpfile;
7302 1 : var _send=env._send;
7303 1 : var _abort=env._abort;
7304 1 : var _setvbuf=env._setvbuf;
7305 1 : var _atan2=env._atan2;
7306 1 : var _setlocale=env._setlocale;
7307 1 : var _isgraph=env._isgraph;
7308 1 : var _modf=env._modf;
7309 1 : var _strerror_r=env._strerror_r;
7310 1 : var _fscanf=env._fscanf;
7311 1 : var ___setErrNo=env.___setErrNo;
7312 1 : var _isalpha=env._isalpha;
7313 1 : var _srand=env._srand;
7314 1 : var _mktime=env._mktime;
7315 1 : var _putchar=env._putchar;
7316 1 : var _gmtime=env._gmtime;
7317 1 : var _localeconv=env._localeconv;
7318 1 : var _sprintf=env._sprintf;
7319 1 : var _localtime=env._localtime;
7320 1 : var _read=env._read;
7321 1 : var _fwrite=env._fwrite;
7322 1 : var _time=env._time;
7323 1 : var _fprintf=env._fprintf;
7324 1 : var _exit=env._exit;
7325 1 : var _freopen=env._freopen;
7326 1 : var _llvm_pow_f64=env._llvm_pow_f64;
7327 1 : var _fgetc=env._fgetc;
7328 1 : var _fmod=env._fmod;
7329 1 : var _lseek=env._lseek;
7330 1 : var _rmdir=env._rmdir;
7331 1 : var _asin=env._asin;
7332 1 : var _floor=env._floor;
7333 1 : var _pwrite=env._pwrite;
7334 1 : var _localtime_r=env._localtime_r;
7335 1 : var _tzset=env._tzset;
7336 1 : var _open=env._open;
7337 1 : var _remove=env._remove;
7338 1 : var _snprintf=env._snprintf;
7339 1 : var __scanString=env.__scanString;
7340 1 : var _strftime=env._strftime;
7341 1 : var _fseek=env._fseek;
7342 1 : var _iscntrl=env._iscntrl;
7343 1 : var _isxdigit=env._isxdigit;
7344 1 : var _fclose=env._fclose;
7345 1 : var _log=env._log;
7346 1 : var _recv=env._recv;
7347 1 : var _tan=env._tan;
7348 1 : var _copysign=env._copysign;
7349 1 : var __getFloat=env.__getFloat;
7350 1 : var _fputc=env._fputc;
7351 1 : var _ispunct=env._ispunct;
7352 1 : var _ceil=env._ceil;
7353 1 : var _isspace=env._isspace;
7354 1 : var _fopen=env._fopen;
7355 1 : var _sin=env._sin;
7356 1 : var _acos=env._acos;
7357 1 : var _cosh=env._cosh;
7358 1 : var ___buildEnvironment=env.___buildEnvironment;
7359 1 : var _difftime=env._difftime;
7360 1 : var _ungetc=env._ungetc;
7361 1 : var _system=env._system;
7362 1 : var _fflush=env._fflush;
7363 1 : var _log10=env._log10;
7364 1 : var _fileno=env._fileno;
7365 1 : var __exit=env.__exit;
7366 1 : var __arraySum=env.__arraySum;
7367 1 : var _fgets=env._fgets;
7368 1 : var _atan=env._atan;
7369 1 : var _pread=env._pread;
7370 1 : var _mkport=env._mkport;
7371 1 : var _toupper=env._toupper;
7372 1 : var _feof=env._feof;
7373 1 : var ___errno_location=env.___errno_location;
7374 1 : var _clearerr=env._clearerr;
7375 1 : var _getenv=env._getenv;
7376 1 : var _strerror=env._strerror;
7377 1 : var _emscripten_longjmp=env._emscripten_longjmp;
7378 1 : var __formatString=env.__formatString;
7379 1 : var _fputs=env._fputs;
7380 1 : var _sqrt=env._sqrt;
7381 1 : var tempFloat = 0.0;
7382 1 :
7383 1 : // EMSCRIPTEN_START_FUNCS
7384 286438 : function _malloc(i12) {
7385 286438 : i12 = i12 | 0;
7386 286438 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
7387 286438 : i1 = STACKTOP;
7388 286438 : do {
7389 286438 : if (i12 >>> 0 < 245) {
7390 286438 : if (i12 >>> 0 < 11) {
7391 286438 : i12 = 16;
7392 286438 : } else {
7393 286438 : i12 = i12 + 11 & -8;
7394 286438 : }
7395 286438 : i20 = i12 >>> 3;
7396 286438 : i18 = HEAP32[3228] | 0;
7397 286438 : i21 = i18 >>> i20;
7398 286438 : if ((i21 & 3 | 0) != 0) {
7399 286438 : i6 = (i21 & 1 ^ 1) + i20 | 0;
7400 286438 : i5 = i6 << 1;
7401 286438 : i3 = 12952 + (i5 << 2) | 0;
7402 286438 : i5 = 12952 + (i5 + 2 << 2) | 0;
7403 286438 : i7 = HEAP32[i5 >> 2] | 0;
7404 286438 : i2 = i7 + 8 | 0;
7405 286438 : i4 = HEAP32[i2 >> 2] | 0;
7406 286438 : do {
7407 286438 : if ((i3 | 0) != (i4 | 0)) {
7408 286438 : if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7409 286438 : _abort();
7410 286438 : }
7411 286438 : i8 = i4 + 12 | 0;
7412 286438 : if ((HEAP32[i8 >> 2] | 0) == (i7 | 0)) {
7413 286438 : HEAP32[i8 >> 2] = i3;
7414 286438 : HEAP32[i5 >> 2] = i4;
7415 286438 : break;
7416 286438 : } else {
7417 286438 : _abort();
7418 286438 : }
7419 286438 : } else {
7420 286438 : HEAP32[3228] = i18 & ~(1 << i6);
7421 286438 : }
7422 286438 : } while (0);
7423 286438 : i32 = i6 << 3;
7424 286438 : HEAP32[i7 + 4 >> 2] = i32 | 3;
7425 286438 : i32 = i7 + (i32 | 4) | 0;
7426 286438 : HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
7427 286438 : i32 = i2;
7428 286438 : STACKTOP = i1;
7429 286438 : return i32 | 0;
7430 286438 : }
7431 286438 : if (i12 >>> 0 > (HEAP32[12920 >> 2] | 0) >>> 0) {
7432 286438 : if ((i21 | 0) != 0) {
7433 286438 : i7 = 2 << i20;
7434 286438 : i7 = i21 << i20 & (i7 | 0 - i7);
7435 286438 : i7 = (i7 & 0 - i7) + -1 | 0;
7436 286438 : i2 = i7 >>> 12 & 16;
7437 286438 : i7 = i7 >>> i2;
7438 286438 : i6 = i7 >>> 5 & 8;
7439 286438 : i7 = i7 >>> i6;
7440 286438 : i5 = i7 >>> 2 & 4;
7441 286438 : i7 = i7 >>> i5;
7442 286438 : i4 = i7 >>> 1 & 2;
7443 286438 : i7 = i7 >>> i4;
7444 286438 : i3 = i7 >>> 1 & 1;
7445 286438 : i3 = (i6 | i2 | i5 | i4 | i3) + (i7 >>> i3) | 0;
7446 286438 : i7 = i3 << 1;
7447 286438 : i4 = 12952 + (i7 << 2) | 0;
7448 286438 : i7 = 12952 + (i7 + 2 << 2) | 0;
7449 286438 : i5 = HEAP32[i7 >> 2] | 0;
7450 286438 : i2 = i5 + 8 | 0;
7451 286438 : i6 = HEAP32[i2 >> 2] | 0;
7452 286438 : do {
7453 286438 : if ((i4 | 0) != (i6 | 0)) {
7454 286438 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7455 286438 : _abort();
7456 286438 : }
7457 286438 : i8 = i6 + 12 | 0;
7458 286438 : if ((HEAP32[i8 >> 2] | 0) == (i5 | 0)) {
7459 286438 : HEAP32[i8 >> 2] = i4;
7460 286438 : HEAP32[i7 >> 2] = i6;
7461 286438 : break;
7462 286438 : } else {
7463 286438 : _abort();
7464 286438 : }
7465 286438 : } else {
7466 286438 : HEAP32[3228] = i18 & ~(1 << i3);
7467 286438 : }
7468 286438 : } while (0);
7469 286438 : i6 = i3 << 3;
7470 286438 : i4 = i6 - i12 | 0;
7471 286438 : HEAP32[i5 + 4 >> 2] = i12 | 3;
7472 286438 : i3 = i5 + i12 | 0;
7473 286438 : HEAP32[i5 + (i12 | 4) >> 2] = i4 | 1;
7474 286438 : HEAP32[i5 + i6 >> 2] = i4;
7475 286438 : i6 = HEAP32[12920 >> 2] | 0;
7476 286438 : if ((i6 | 0) != 0) {
7477 286438 : i5 = HEAP32[12932 >> 2] | 0;
7478 286438 : i8 = i6 >>> 3;
7479 286438 : i9 = i8 << 1;
7480 286438 : i6 = 12952 + (i9 << 2) | 0;
7481 286438 : i7 = HEAP32[3228] | 0;
7482 286438 : i8 = 1 << i8;
7483 286438 : if ((i7 & i8 | 0) != 0) {
7484 286438 : i7 = 12952 + (i9 + 2 << 2) | 0;
7485 286438 : i8 = HEAP32[i7 >> 2] | 0;
7486 286438 : if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7487 286438 : _abort();
7488 286438 : } else {
7489 286438 : i28 = i7;
7490 286438 : i27 = i8;
7491 286438 : }
7492 286438 : } else {
7493 286438 : HEAP32[3228] = i7 | i8;
7494 286438 : i28 = 12952 + (i9 + 2 << 2) | 0;
7495 286438 : i27 = i6;
7496 286438 : }
7497 286438 : HEAP32[i28 >> 2] = i5;
7498 286438 : HEAP32[i27 + 12 >> 2] = i5;
7499 286438 : HEAP32[i5 + 8 >> 2] = i27;
7500 286438 : HEAP32[i5 + 12 >> 2] = i6;
7501 286438 : }
7502 286438 : HEAP32[12920 >> 2] = i4;
7503 286438 : HEAP32[12932 >> 2] = i3;
7504 286438 : i32 = i2;
7505 286438 : STACKTOP = i1;
7506 286438 : return i32 | 0;
7507 286438 : }
7508 286438 : i18 = HEAP32[12916 >> 2] | 0;
7509 286438 : if ((i18 | 0) != 0) {
7510 286438 : i2 = (i18 & 0 - i18) + -1 | 0;
7511 286438 : i31 = i2 >>> 12 & 16;
7512 286438 : i2 = i2 >>> i31;
7513 286438 : i30 = i2 >>> 5 & 8;
7514 286438 : i2 = i2 >>> i30;
7515 286438 : i32 = i2 >>> 2 & 4;
7516 286438 : i2 = i2 >>> i32;
7517 286438 : i6 = i2 >>> 1 & 2;
7518 286438 : i2 = i2 >>> i6;
7519 286438 : i3 = i2 >>> 1 & 1;
7520 286438 : i3 = HEAP32[13216 + ((i30 | i31 | i32 | i6 | i3) + (i2 >>> i3) << 2) >> 2] | 0;
7521 286438 : i2 = (HEAP32[i3 + 4 >> 2] & -8) - i12 | 0;
7522 286438 : i6 = i3;
7523 286438 : while (1) {
7524 286438 : i5 = HEAP32[i6 + 16 >> 2] | 0;
7525 286438 : if ((i5 | 0) == 0) {
7526 286438 : i5 = HEAP32[i6 + 20 >> 2] | 0;
7527 286438 : if ((i5 | 0) == 0) {
7528 286438 : break;
7529 286438 : }
7530 286438 : }
7531 286438 : i6 = (HEAP32[i5 + 4 >> 2] & -8) - i12 | 0;
7532 286438 : i4 = i6 >>> 0 < i2 >>> 0;
7533 286438 : i2 = i4 ? i6 : i2;
7534 286438 : i6 = i5;
7535 286438 : i3 = i4 ? i5 : i3;
7536 286438 : }
7537 286438 : i6 = HEAP32[12928 >> 2] | 0;
7538 286438 : if (i3 >>> 0 < i6 >>> 0) {
7539 286438 : _abort();
7540 286438 : }
7541 286438 : i4 = i3 + i12 | 0;
7542 286438 : if (!(i3 >>> 0 < i4 >>> 0)) {
7543 286438 : _abort();
7544 286438 : }
7545 286438 : i5 = HEAP32[i3 + 24 >> 2] | 0;
7546 286438 : i7 = HEAP32[i3 + 12 >> 2] | 0;
7547 286438 : do {
7548 286438 : if ((i7 | 0) == (i3 | 0)) {
7549 286438 : i8 = i3 + 20 | 0;
7550 286438 : i7 = HEAP32[i8 >> 2] | 0;
7551 286438 : if ((i7 | 0) == 0) {
7552 286438 : i8 = i3 + 16 | 0;
7553 286438 : i7 = HEAP32[i8 >> 2] | 0;
7554 286438 : if ((i7 | 0) == 0) {
7555 286438 : i26 = 0;
7556 286438 : break;
7557 286438 : }
7558 286438 : }
7559 286438 : while (1) {
7560 286438 : i10 = i7 + 20 | 0;
7561 286438 : i9 = HEAP32[i10 >> 2] | 0;
7562 286438 : if ((i9 | 0) != 0) {
7563 286438 : i7 = i9;
7564 286438 : i8 = i10;
7565 286438 : continue;
7566 286438 : }
7567 286438 : i10 = i7 + 16 | 0;
7568 286438 : i9 = HEAP32[i10 >> 2] | 0;
7569 286438 : if ((i9 | 0) == 0) {
7570 286438 : break;
7571 286438 : } else {
7572 286438 : i7 = i9;
7573 286438 : i8 = i10;
7574 286438 : }
7575 286438 : }
7576 286438 : if (i8 >>> 0 < i6 >>> 0) {
7577 286438 : _abort();
7578 286438 : } else {
7579 286438 : HEAP32[i8 >> 2] = 0;
7580 286438 : i26 = i7;
7581 286438 : break;
7582 286438 : }
7583 286438 : } else {
7584 286438 : i8 = HEAP32[i3 + 8 >> 2] | 0;
7585 286438 : if (i8 >>> 0 < i6 >>> 0) {
7586 286438 : _abort();
7587 286438 : }
7588 286438 : i6 = i8 + 12 | 0;
7589 286438 : if ((HEAP32[i6 >> 2] | 0) != (i3 | 0)) {
7590 286438 : _abort();
7591 286438 : }
7592 286438 : i9 = i7 + 8 | 0;
7593 286438 : if ((HEAP32[i9 >> 2] | 0) == (i3 | 0)) {
7594 286438 : HEAP32[i6 >> 2] = i7;
7595 286438 : HEAP32[i9 >> 2] = i8;
7596 286438 : i26 = i7;
7597 286438 : break;
7598 286438 : } else {
7599 286438 : _abort();
7600 286438 : }
7601 286438 : }
7602 286438 : } while (0);
7603 286438 : do {
7604 286438 : if ((i5 | 0) != 0) {
7605 286438 : i7 = HEAP32[i3 + 28 >> 2] | 0;
7606 286438 : i6 = 13216 + (i7 << 2) | 0;
7607 286438 : if ((i3 | 0) == (HEAP32[i6 >> 2] | 0)) {
7608 286438 : HEAP32[i6 >> 2] = i26;
7609 286438 : if ((i26 | 0) == 0) {
7610 286438 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i7);
7611 286438 : break;
7612 286438 : }
7613 286438 : } else {
7614 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7615 286438 : _abort();
7616 286438 : }
7617 286438 : i6 = i5 + 16 | 0;
7618 286438 : if ((HEAP32[i6 >> 2] | 0) == (i3 | 0)) {
7619 286438 : HEAP32[i6 >> 2] = i26;
7620 286438 : } else {
7621 286438 : HEAP32[i5 + 20 >> 2] = i26;
7622 286438 : }
7623 286438 : if ((i26 | 0) == 0) {
7624 286438 : break;
7625 286438 : }
7626 286438 : }
7627 286438 : if (i26 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7628 286438 : _abort();
7629 286438 : }
7630 286438 : HEAP32[i26 + 24 >> 2] = i5;
7631 286438 : i5 = HEAP32[i3 + 16 >> 2] | 0;
7632 286438 : do {
7633 286438 : if ((i5 | 0) != 0) {
7634 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7635 286438 : _abort();
7636 286438 : } else {
7637 286438 : HEAP32[i26 + 16 >> 2] = i5;
7638 286438 : HEAP32[i5 + 24 >> 2] = i26;
7639 286438 : break;
7640 286438 : }
7641 286438 : }
7642 286438 : } while (0);
7643 286438 : i5 = HEAP32[i3 + 20 >> 2] | 0;
7644 286438 : if ((i5 | 0) != 0) {
7645 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7646 286438 : _abort();
7647 286438 : } else {
7648 286438 : HEAP32[i26 + 20 >> 2] = i5;
7649 286438 : HEAP32[i5 + 24 >> 2] = i26;
7650 286438 : break;
7651 286438 : }
7652 286438 : }
7653 286438 : }
7654 286438 : } while (0);
7655 286438 : if (i2 >>> 0 < 16) {
7656 286438 : i32 = i2 + i12 | 0;
7657 286438 : HEAP32[i3 + 4 >> 2] = i32 | 3;
7658 286438 : i32 = i3 + (i32 + 4) | 0;
7659 286438 : HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
7660 286438 : } else {
7661 286438 : HEAP32[i3 + 4 >> 2] = i12 | 3;
7662 286438 : HEAP32[i3 + (i12 | 4) >> 2] = i2 | 1;
7663 286438 : HEAP32[i3 + (i2 + i12) >> 2] = i2;
7664 286438 : i6 = HEAP32[12920 >> 2] | 0;
7665 286438 : if ((i6 | 0) != 0) {
7666 286438 : i5 = HEAP32[12932 >> 2] | 0;
7667 286438 : i8 = i6 >>> 3;
7668 286438 : i9 = i8 << 1;
7669 286438 : i6 = 12952 + (i9 << 2) | 0;
7670 286438 : i7 = HEAP32[3228] | 0;
7671 286438 : i8 = 1 << i8;
7672 286438 : if ((i7 & i8 | 0) != 0) {
7673 286438 : i7 = 12952 + (i9 + 2 << 2) | 0;
7674 286438 : i8 = HEAP32[i7 >> 2] | 0;
7675 286438 : if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7676 286438 : _abort();
7677 286438 : } else {
7678 286438 : i25 = i7;
7679 286438 : i24 = i8;
7680 286438 : }
7681 286438 : } else {
7682 286438 : HEAP32[3228] = i7 | i8;
7683 286438 : i25 = 12952 + (i9 + 2 << 2) | 0;
7684 286438 : i24 = i6;
7685 286438 : }
7686 286438 : HEAP32[i25 >> 2] = i5;
7687 286438 : HEAP32[i24 + 12 >> 2] = i5;
7688 286438 : HEAP32[i5 + 8 >> 2] = i24;
7689 286438 : HEAP32[i5 + 12 >> 2] = i6;
7690 286438 : }
7691 286438 : HEAP32[12920 >> 2] = i2;
7692 286438 : HEAP32[12932 >> 2] = i4;
7693 286438 : }
7694 286438 : i32 = i3 + 8 | 0;
7695 286438 : STACKTOP = i1;
7696 286438 : return i32 | 0;
7697 286438 : }
7698 286438 : }
7699 286438 : } else {
7700 286438 : if (!(i12 >>> 0 > 4294967231)) {
7701 286438 : i24 = i12 + 11 | 0;
7702 286438 : i12 = i24 & -8;
7703 286438 : i26 = HEAP32[12916 >> 2] | 0;
7704 286438 : if ((i26 | 0) != 0) {
7705 286438 : i25 = 0 - i12 | 0;
7706 286438 : i24 = i24 >>> 8;
7707 286438 : if ((i24 | 0) != 0) {
7708 286438 : if (i12 >>> 0 > 16777215) {
7709 286438 : i27 = 31;
7710 286438 : } else {
7711 286438 : i31 = (i24 + 1048320 | 0) >>> 16 & 8;
7712 286438 : i32 = i24 << i31;
7713 286438 : i30 = (i32 + 520192 | 0) >>> 16 & 4;
7714 286438 : i32 = i32 << i30;
7715 286438 : i27 = (i32 + 245760 | 0) >>> 16 & 2;
7716 286438 : i27 = 14 - (i30 | i31 | i27) + (i32 << i27 >>> 15) | 0;
7717 286438 : i27 = i12 >>> (i27 + 7 | 0) & 1 | i27 << 1;
7718 286438 : }
7719 286438 : } else {
7720 286438 : i27 = 0;
7721 286438 : }
7722 286438 : i30 = HEAP32[13216 + (i27 << 2) >> 2] | 0;
7723 286438 : L126 : do {
7724 286438 : if ((i30 | 0) == 0) {
7725 286438 : i29 = 0;
7726 286438 : i24 = 0;
7727 286438 : } else {
7728 286438 : if ((i27 | 0) == 31) {
7729 286438 : i24 = 0;
7730 286438 : } else {
7731 286438 : i24 = 25 - (i27 >>> 1) | 0;
7732 286438 : }
7733 286438 : i29 = 0;
7734 286438 : i28 = i12 << i24;
7735 286438 : i24 = 0;
7736 286438 : while (1) {
7737 286438 : i32 = HEAP32[i30 + 4 >> 2] & -8;
7738 286438 : i31 = i32 - i12 | 0;
7739 286438 : if (i31 >>> 0 < i25 >>> 0) {
7740 286438 : if ((i32 | 0) == (i12 | 0)) {
7741 286438 : i25 = i31;
7742 286438 : i29 = i30;
7743 286438 : i24 = i30;
7744 286438 : break L126;
7745 286438 : } else {
7746 286438 : i25 = i31;
7747 286438 : i24 = i30;
7748 286438 : }
7749 286438 : }
7750 286438 : i31 = HEAP32[i30 + 20 >> 2] | 0;
7751 286438 : i30 = HEAP32[i30 + (i28 >>> 31 << 2) + 16 >> 2] | 0;
7752 286438 : i29 = (i31 | 0) == 0 | (i31 | 0) == (i30 | 0) ? i29 : i31;
7753 286438 : if ((i30 | 0) == 0) {
7754 286438 : break;
7755 286438 : } else {
7756 286438 : i28 = i28 << 1;
7757 286438 : }
7758 286438 : }
7759 286438 : }
7760 286438 : } while (0);
7761 286438 : if ((i29 | 0) == 0 & (i24 | 0) == 0) {
7762 286438 : i32 = 2 << i27;
7763 286438 : i26 = i26 & (i32 | 0 - i32);
7764 286438 : if ((i26 | 0) == 0) {
7765 286438 : break;
7766 286438 : }
7767 286438 : i32 = (i26 & 0 - i26) + -1 | 0;
7768 286438 : i28 = i32 >>> 12 & 16;
7769 286438 : i32 = i32 >>> i28;
7770 286438 : i27 = i32 >>> 5 & 8;
7771 286438 : i32 = i32 >>> i27;
7772 286438 : i30 = i32 >>> 2 & 4;
7773 286438 : i32 = i32 >>> i30;
7774 286438 : i31 = i32 >>> 1 & 2;
7775 286438 : i32 = i32 >>> i31;
7776 286438 : i29 = i32 >>> 1 & 1;
7777 286438 : i29 = HEAP32[13216 + ((i27 | i28 | i30 | i31 | i29) + (i32 >>> i29) << 2) >> 2] | 0;
7778 286438 : }
7779 286438 : if ((i29 | 0) != 0) {
7780 286438 : while (1) {
7781 286438 : i27 = (HEAP32[i29 + 4 >> 2] & -8) - i12 | 0;
7782 286438 : i26 = i27 >>> 0 < i25 >>> 0;
7783 286438 : i25 = i26 ? i27 : i25;
7784 286438 : i24 = i26 ? i29 : i24;
7785 286438 : i26 = HEAP32[i29 + 16 >> 2] | 0;
7786 286438 : if ((i26 | 0) != 0) {
7787 286438 : i29 = i26;
7788 286438 : continue;
7789 286438 : }
7790 286438 : i29 = HEAP32[i29 + 20 >> 2] | 0;
7791 286438 : if ((i29 | 0) == 0) {
7792 286438 : break;
7793 286438 : }
7794 286438 : }
7795 286438 : }
7796 286438 : if ((i24 | 0) != 0 ? i25 >>> 0 < ((HEAP32[12920 >> 2] | 0) - i12 | 0) >>> 0 : 0) {
7797 286438 : i4 = HEAP32[12928 >> 2] | 0;
7798 286438 : if (i24 >>> 0 < i4 >>> 0) {
7799 286438 : _abort();
7800 286438 : }
7801 286438 : i2 = i24 + i12 | 0;
7802 286438 : if (!(i24 >>> 0 < i2 >>> 0)) {
7803 286438 : _abort();
7804 286438 : }
7805 286438 : i3 = HEAP32[i24 + 24 >> 2] | 0;
7806 286438 : i6 = HEAP32[i24 + 12 >> 2] | 0;
7807 286438 : do {
7808 286438 : if ((i6 | 0) == (i24 | 0)) {
7809 286438 : i6 = i24 + 20 | 0;
7810 286438 : i5 = HEAP32[i6 >> 2] | 0;
7811 286438 : if ((i5 | 0) == 0) {
7812 286438 : i6 = i24 + 16 | 0;
7813 286438 : i5 = HEAP32[i6 >> 2] | 0;
7814 286438 : if ((i5 | 0) == 0) {
7815 286438 : i22 = 0;
7816 286438 : break;
7817 286438 : }
7818 286438 : }
7819 286438 : while (1) {
7820 286438 : i8 = i5 + 20 | 0;
7821 286438 : i7 = HEAP32[i8 >> 2] | 0;
7822 286438 : if ((i7 | 0) != 0) {
7823 286438 : i5 = i7;
7824 286438 : i6 = i8;
7825 286438 : continue;
7826 286438 : }
7827 286438 : i7 = i5 + 16 | 0;
7828 286438 : i8 = HEAP32[i7 >> 2] | 0;
7829 286438 : if ((i8 | 0) == 0) {
7830 286438 : break;
7831 286438 : } else {
7832 286438 : i5 = i8;
7833 286438 : i6 = i7;
7834 286438 : }
7835 286438 : }
7836 286438 : if (i6 >>> 0 < i4 >>> 0) {
7837 286438 : _abort();
7838 286438 : } else {
7839 286438 : HEAP32[i6 >> 2] = 0;
7840 286438 : i22 = i5;
7841 286438 : break;
7842 286438 : }
7843 286438 : } else {
7844 286438 : i5 = HEAP32[i24 + 8 >> 2] | 0;
7845 286438 : if (i5 >>> 0 < i4 >>> 0) {
7846 286438 : _abort();
7847 286438 : }
7848 286438 : i7 = i5 + 12 | 0;
7849 286438 : if ((HEAP32[i7 >> 2] | 0) != (i24 | 0)) {
7850 286438 : _abort();
7851 286438 : }
7852 286438 : i4 = i6 + 8 | 0;
7853 286438 : if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
7854 286438 : HEAP32[i7 >> 2] = i6;
7855 286438 : HEAP32[i4 >> 2] = i5;
7856 286438 : i22 = i6;
7857 286438 : break;
7858 286438 : } else {
7859 286438 : _abort();
7860 286438 : }
7861 286438 : }
7862 286438 : } while (0);
7863 286438 : do {
7864 286438 : if ((i3 | 0) != 0) {
7865 286438 : i4 = HEAP32[i24 + 28 >> 2] | 0;
7866 286438 : i5 = 13216 + (i4 << 2) | 0;
7867 286438 : if ((i24 | 0) == (HEAP32[i5 >> 2] | 0)) {
7868 286438 : HEAP32[i5 >> 2] = i22;
7869 286438 : if ((i22 | 0) == 0) {
7870 286438 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i4);
7871 286438 : break;
7872 286438 : }
7873 286438 : } else {
7874 286438 : if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7875 286438 : _abort();
7876 286438 : }
7877 286438 : i4 = i3 + 16 | 0;
7878 286438 : if ((HEAP32[i4 >> 2] | 0) == (i24 | 0)) {
7879 286438 : HEAP32[i4 >> 2] = i22;
7880 286438 : } else {
7881 286438 : HEAP32[i3 + 20 >> 2] = i22;
7882 286438 : }
7883 286438 : if ((i22 | 0) == 0) {
7884 286438 : break;
7885 286438 : }
7886 286438 : }
7887 286438 : if (i22 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7888 286438 : _abort();
7889 286438 : }
7890 286438 : HEAP32[i22 + 24 >> 2] = i3;
7891 286438 : i3 = HEAP32[i24 + 16 >> 2] | 0;
7892 286438 : do {
7893 286438 : if ((i3 | 0) != 0) {
7894 286438 : if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7895 286438 : _abort();
7896 286438 : } else {
7897 286438 : HEAP32[i22 + 16 >> 2] = i3;
7898 286438 : HEAP32[i3 + 24 >> 2] = i22;
7899 286438 : break;
7900 286438 : }
7901 286438 : }
7902 286438 : } while (0);
7903 286438 : i3 = HEAP32[i24 + 20 >> 2] | 0;
7904 286438 : if ((i3 | 0) != 0) {
7905 286438 : if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7906 286438 : _abort();
7907 286438 : } else {
7908 286438 : HEAP32[i22 + 20 >> 2] = i3;
7909 286438 : HEAP32[i3 + 24 >> 2] = i22;
7910 286438 : break;
7911 286438 : }
7912 286438 : }
7913 286438 : }
7914 286438 : } while (0);
7915 286438 : L204 : do {
7916 286438 : if (!(i25 >>> 0 < 16)) {
7917 286438 : HEAP32[i24 + 4 >> 2] = i12 | 3;
7918 286438 : HEAP32[i24 + (i12 | 4) >> 2] = i25 | 1;
7919 286438 : HEAP32[i24 + (i25 + i12) >> 2] = i25;
7920 286438 : i4 = i25 >>> 3;
7921 286438 : if (i25 >>> 0 < 256) {
7922 286438 : i6 = i4 << 1;
7923 286438 : i3 = 12952 + (i6 << 2) | 0;
7924 286438 : i5 = HEAP32[3228] | 0;
7925 286438 : i4 = 1 << i4;
7926 286438 : if ((i5 & i4 | 0) != 0) {
7927 286438 : i5 = 12952 + (i6 + 2 << 2) | 0;
7928 286438 : i4 = HEAP32[i5 >> 2] | 0;
7929 286438 : if (i4 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
7930 286438 : _abort();
7931 286438 : } else {
7932 286438 : i21 = i5;
7933 286438 : i20 = i4;
7934 286438 : }
7935 286438 : } else {
7936 286438 : HEAP32[3228] = i5 | i4;
7937 286438 : i21 = 12952 + (i6 + 2 << 2) | 0;
7938 286438 : i20 = i3;
7939 286438 : }
7940 286438 : HEAP32[i21 >> 2] = i2;
7941 286438 : HEAP32[i20 + 12 >> 2] = i2;
7942 286438 : HEAP32[i24 + (i12 + 8) >> 2] = i20;
7943 286438 : HEAP32[i24 + (i12 + 12) >> 2] = i3;
7944 286438 : break;
7945 286438 : }
7946 286438 : i3 = i25 >>> 8;
7947 286438 : if ((i3 | 0) != 0) {
7948 286438 : if (i25 >>> 0 > 16777215) {
7949 286438 : i3 = 31;
7950 286438 : } else {
7951 286438 : i31 = (i3 + 1048320 | 0) >>> 16 & 8;
7952 286438 : i32 = i3 << i31;
7953 286438 : i30 = (i32 + 520192 | 0) >>> 16 & 4;
7954 286438 : i32 = i32 << i30;
7955 286438 : i3 = (i32 + 245760 | 0) >>> 16 & 2;
7956 286438 : i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
7957 286438 : i3 = i25 >>> (i3 + 7 | 0) & 1 | i3 << 1;
7958 286438 : }
7959 286438 : } else {
7960 286438 : i3 = 0;
7961 286438 : }
7962 286438 : i6 = 13216 + (i3 << 2) | 0;
7963 286438 : HEAP32[i24 + (i12 + 28) >> 2] = i3;
7964 286438 : HEAP32[i24 + (i12 + 20) >> 2] = 0;
7965 286438 : HEAP32[i24 + (i12 + 16) >> 2] = 0;
7966 286438 : i4 = HEAP32[12916 >> 2] | 0;
7967 286438 : i5 = 1 << i3;
7968 286438 : if ((i4 & i5 | 0) == 0) {
7969 286438 : HEAP32[12916 >> 2] = i4 | i5;
7970 286438 : HEAP32[i6 >> 2] = i2;
7971 286438 : HEAP32[i24 + (i12 + 24) >> 2] = i6;
7972 286438 : HEAP32[i24 + (i12 + 12) >> 2] = i2;
7973 286438 : HEAP32[i24 + (i12 + 8) >> 2] = i2;
7974 286438 : break;
7975 286438 : }
7976 286438 : i4 = HEAP32[i6 >> 2] | 0;
7977 286438 : if ((i3 | 0) == 31) {
7978 286438 : i3 = 0;
7979 286438 : } else {
7980 286438 : i3 = 25 - (i3 >>> 1) | 0;
7981 286438 : }
7982 286438 : L225 : do {
7983 286438 : if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i25 | 0)) {
7984 286438 : i3 = i25 << i3;
7985 286438 : while (1) {
7986 286438 : i6 = i4 + (i3 >>> 31 << 2) + 16 | 0;
7987 286438 : i5 = HEAP32[i6 >> 2] | 0;
7988 286438 : if ((i5 | 0) == 0) {
7989 286438 : break;
7990 286438 : }
7991 286438 : if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i25 | 0)) {
7992 286438 : i18 = i5;
7993 286438 : break L225;
7994 286438 : } else {
7995 286438 : i3 = i3 << 1;
7996 286438 : i4 = i5;
7997 286438 : }
7998 286438 : }
7999 286438 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8000 286438 : _abort();
8001 286438 : } else {
8002 286438 : HEAP32[i6 >> 2] = i2;
8003 286438 : HEAP32[i24 + (i12 + 24) >> 2] = i4;
8004 286438 : HEAP32[i24 + (i12 + 12) >> 2] = i2;
8005 286438 : HEAP32[i24 + (i12 + 8) >> 2] = i2;
8006 286438 : break L204;
8007 286438 : }
8008 286438 : } else {
8009 286438 : i18 = i4;
8010 286438 : }
8011 286438 : } while (0);
8012 286438 : i4 = i18 + 8 | 0;
8013 286438 : i3 = HEAP32[i4 >> 2] | 0;
8014 286438 : i5 = HEAP32[12928 >> 2] | 0;
8015 286438 : if (i18 >>> 0 < i5 >>> 0) {
8016 286438 : _abort();
8017 286438 : }
8018 286438 : if (i3 >>> 0 < i5 >>> 0) {
8019 286438 : _abort();
8020 286438 : } else {
8021 286438 : HEAP32[i3 + 12 >> 2] = i2;
8022 286438 : HEAP32[i4 >> 2] = i2;
8023 286438 : HEAP32[i24 + (i12 + 8) >> 2] = i3;
8024 286438 : HEAP32[i24 + (i12 + 12) >> 2] = i18;
8025 286438 : HEAP32[i24 + (i12 + 24) >> 2] = 0;
8026 286438 : break;
8027 286438 : }
8028 286438 : } else {
8029 286438 : i32 = i25 + i12 | 0;
8030 286438 : HEAP32[i24 + 4 >> 2] = i32 | 3;
8031 286438 : i32 = i24 + (i32 + 4) | 0;
8032 286438 : HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
8033 286438 : }
8034 286438 : } while (0);
8035 286438 : i32 = i24 + 8 | 0;
8036 286438 : STACKTOP = i1;
8037 286438 : return i32 | 0;
8038 286438 : }
8039 286438 : }
8040 286438 : } else {
8041 286438 : i12 = -1;
8042 286438 : }
8043 286438 : }
8044 286438 : } while (0);
8045 286438 : i18 = HEAP32[12920 >> 2] | 0;
8046 286438 : if (!(i12 >>> 0 > i18 >>> 0)) {
8047 286438 : i3 = i18 - i12 | 0;
8048 286438 : i2 = HEAP32[12932 >> 2] | 0;
8049 286438 : if (i3 >>> 0 > 15) {
8050 286438 : HEAP32[12932 >> 2] = i2 + i12;
8051 286438 : HEAP32[12920 >> 2] = i3;
8052 286438 : HEAP32[i2 + (i12 + 4) >> 2] = i3 | 1;
8053 286438 : HEAP32[i2 + i18 >> 2] = i3;
8054 286438 : HEAP32[i2 + 4 >> 2] = i12 | 3;
8055 286438 : } else {
8056 286438 : HEAP32[12920 >> 2] = 0;
8057 286438 : HEAP32[12932 >> 2] = 0;
8058 286438 : HEAP32[i2 + 4 >> 2] = i18 | 3;
8059 286438 : i32 = i2 + (i18 + 4) | 0;
8060 286438 : HEAP32[i32 >> 2] = HEAP32[i32 >> 2] | 1;
8061 286438 : }
8062 286438 : i32 = i2 + 8 | 0;
8063 286438 : STACKTOP = i1;
8064 286438 : return i32 | 0;
8065 286438 : }
8066 286438 : i18 = HEAP32[12924 >> 2] | 0;
8067 286438 : if (i12 >>> 0 < i18 >>> 0) {
8068 286438 : i31 = i18 - i12 | 0;
8069 286438 : HEAP32[12924 >> 2] = i31;
8070 286438 : i32 = HEAP32[12936 >> 2] | 0;
8071 286438 : HEAP32[12936 >> 2] = i32 + i12;
8072 286438 : HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
8073 286438 : HEAP32[i32 + 4 >> 2] = i12 | 3;
8074 286438 : i32 = i32 + 8 | 0;
8075 286438 : STACKTOP = i1;
8076 286438 : return i32 | 0;
8077 286438 : }
8078 286438 : do {
8079 286438 : if ((HEAP32[3346] | 0) == 0) {
8080 286438 : i18 = _sysconf(30) | 0;
8081 286438 : if ((i18 + -1 & i18 | 0) == 0) {
8082 286438 : HEAP32[13392 >> 2] = i18;
8083 286438 : HEAP32[13388 >> 2] = i18;
8084 286438 : HEAP32[13396 >> 2] = -1;
8085 286438 : HEAP32[13400 >> 2] = -1;
8086 286438 : HEAP32[13404 >> 2] = 0;
8087 286438 : HEAP32[13356 >> 2] = 0;
8088 286438 : HEAP32[3346] = (_time(0) | 0) & -16 ^ 1431655768;
8089 286438 : break;
8090 286438 : } else {
8091 286438 : _abort();
8092 286438 : }
8093 286438 : }
8094 286438 : } while (0);
8095 286438 : i20 = i12 + 48 | 0;
8096 286438 : i25 = HEAP32[13392 >> 2] | 0;
8097 286438 : i21 = i12 + 47 | 0;
8098 286438 : i22 = i25 + i21 | 0;
8099 286438 : i25 = 0 - i25 | 0;
8100 286438 : i18 = i22 & i25;
8101 286438 : if (!(i18 >>> 0 > i12 >>> 0)) {
8102 286438 : i32 = 0;
8103 286438 : STACKTOP = i1;
8104 286438 : return i32 | 0;
8105 286438 : }
8106 286438 : i24 = HEAP32[13352 >> 2] | 0;
8107 286438 : if ((i24 | 0) != 0 ? (i31 = HEAP32[13344 >> 2] | 0, i32 = i31 + i18 | 0, i32 >>> 0 <= i31 >>> 0 | i32 >>> 0 > i24 >>> 0) : 0) {
8108 286438 : i32 = 0;
8109 286438 : STACKTOP = i1;
8110 286438 : return i32 | 0;
8111 286438 : }
8112 286438 : L269 : do {
8113 286438 : if ((HEAP32[13356 >> 2] & 4 | 0) == 0) {
8114 286438 : i26 = HEAP32[12936 >> 2] | 0;
8115 286438 : L271 : do {
8116 286438 : if ((i26 | 0) != 0) {
8117 286438 : i24 = 13360 | 0;
8118 286438 : while (1) {
8119 286438 : i27 = HEAP32[i24 >> 2] | 0;
8120 286438 : if (!(i27 >>> 0 > i26 >>> 0) ? (i23 = i24 + 4 | 0, (i27 + (HEAP32[i23 >> 2] | 0) | 0) >>> 0 > i26 >>> 0) : 0) {
8121 286438 : break;
8122 286438 : }
8123 286438 : i24 = HEAP32[i24 + 8 >> 2] | 0;
8124 286438 : if ((i24 | 0) == 0) {
8125 286438 : i13 = 182;
8126 286438 : break L271;
8127 286438 : }
8128 286438 : }
8129 286438 : if ((i24 | 0) != 0) {
8130 286438 : i25 = i22 - (HEAP32[12924 >> 2] | 0) & i25;
8131 286438 : if (i25 >>> 0 < 2147483647) {
8132 286438 : i13 = _sbrk(i25 | 0) | 0;
8133 286438 : i26 = (i13 | 0) == ((HEAP32[i24 >> 2] | 0) + (HEAP32[i23 >> 2] | 0) | 0);
8134 286438 : i22 = i13;
8135 286438 : i24 = i25;
8136 286438 : i23 = i26 ? i13 : -1;
8137 286438 : i25 = i26 ? i25 : 0;
8138 286438 : i13 = 191;
8139 286438 : } else {
8140 286438 : i25 = 0;
8141 286438 : }
8142 286438 : } else {
8143 286438 : i13 = 182;
8144 286438 : }
8145 286438 : } else {
8146 286438 : i13 = 182;
8147 286438 : }
8148 286438 : } while (0);
8149 286438 : do {
8150 286438 : if ((i13 | 0) == 182) {
8151 286438 : i23 = _sbrk(0) | 0;
8152 286438 : if ((i23 | 0) != (-1 | 0)) {
8153 286438 : i24 = i23;
8154 286438 : i22 = HEAP32[13388 >> 2] | 0;
8155 286438 : i25 = i22 + -1 | 0;
8156 286438 : if ((i25 & i24 | 0) == 0) {
8157 286438 : i25 = i18;
8158 286438 : } else {
8159 286438 : i25 = i18 - i24 + (i25 + i24 & 0 - i22) | 0;
8160 286438 : }
8161 286438 : i24 = HEAP32[13344 >> 2] | 0;
8162 286438 : i26 = i24 + i25 | 0;
8163 286438 : if (i25 >>> 0 > i12 >>> 0 & i25 >>> 0 < 2147483647) {
8164 286438 : i22 = HEAP32[13352 >> 2] | 0;
8165 286438 : if ((i22 | 0) != 0 ? i26 >>> 0 <= i24 >>> 0 | i26 >>> 0 > i22 >>> 0 : 0) {
8166 286438 : i25 = 0;
8167 286438 : break;
8168 286438 : }
8169 286438 : i22 = _sbrk(i25 | 0) | 0;
8170 286438 : i13 = (i22 | 0) == (i23 | 0);
8171 286438 : i24 = i25;
8172 286438 : i23 = i13 ? i23 : -1;
8173 286438 : i25 = i13 ? i25 : 0;
8174 286438 : i13 = 191;
8175 286438 : } else {
8176 286438 : i25 = 0;
8177 286438 : }
8178 286438 : } else {
8179 286438 : i25 = 0;
8180 286438 : }
8181 286438 : }
8182 286438 : } while (0);
8183 286438 : L291 : do {
8184 286438 : if ((i13 | 0) == 191) {
8185 286438 : i13 = 0 - i24 | 0;
8186 286438 : if ((i23 | 0) != (-1 | 0)) {
8187 286438 : i17 = i23;
8188 286438 : i14 = i25;
8189 286438 : i13 = 202;
8190 286438 : break L269;
8191 286438 : }
8192 286438 : do {
8193 286438 : if ((i22 | 0) != (-1 | 0) & i24 >>> 0 < 2147483647 & i24 >>> 0 < i20 >>> 0 ? (i19 = HEAP32[13392 >> 2] | 0, i19 = i21 - i24 + i19 & 0 - i19, i19 >>> 0 < 2147483647) : 0) {
8194 286438 : if ((_sbrk(i19 | 0) | 0) == (-1 | 0)) {
8195 286438 : _sbrk(i13 | 0) | 0;
8196 286438 : break L291;
8197 286438 : } else {
8198 286438 : i24 = i19 + i24 | 0;
8199 286438 : break;
8200 286438 : }
8201 286438 : }
8202 286438 : } while (0);
8203 286438 : if ((i22 | 0) != (-1 | 0)) {
8204 286438 : i17 = i22;
8205 286438 : i14 = i24;
8206 286438 : i13 = 202;
8207 286438 : break L269;
8208 286438 : }
8209 286438 : }
8210 286438 : } while (0);
8211 286438 : HEAP32[13356 >> 2] = HEAP32[13356 >> 2] | 4;
8212 286438 : i13 = 199;
8213 286438 : } else {
8214 286438 : i25 = 0;
8215 286438 : i13 = 199;
8216 286438 : }
8217 286438 : } while (0);
8218 286438 : if ((((i13 | 0) == 199 ? i18 >>> 0 < 2147483647 : 0) ? (i17 = _sbrk(i18 | 0) | 0, i16 = _sbrk(0) | 0, (i16 | 0) != (-1 | 0) & (i17 | 0) != (-1 | 0) & i17 >>> 0 < i16 >>> 0) : 0) ? (i15 = i16 - i17 | 0, i14 = i15 >>> 0 > (i12 + 40 | 0) >>> 0, i14) : 0) {
8219 286438 : i14 = i14 ? i15 : i25;
8220 286438 : i13 = 202;
8221 286438 : }
8222 286438 : if ((i13 | 0) == 202) {
8223 286438 : i15 = (HEAP32[13344 >> 2] | 0) + i14 | 0;
8224 286438 : HEAP32[13344 >> 2] = i15;
8225 286438 : if (i15 >>> 0 > (HEAP32[13348 >> 2] | 0) >>> 0) {
8226 286438 : HEAP32[13348 >> 2] = i15;
8227 286438 : }
8228 286438 : i15 = HEAP32[12936 >> 2] | 0;
8229 286438 : L311 : do {
8230 286438 : if ((i15 | 0) != 0) {
8231 286438 : i21 = 13360 | 0;
8232 286438 : while (1) {
8233 286438 : i16 = HEAP32[i21 >> 2] | 0;
8234 286438 : i19 = i21 + 4 | 0;
8235 286438 : i20 = HEAP32[i19 >> 2] | 0;
8236 286438 : if ((i17 | 0) == (i16 + i20 | 0)) {
8237 286438 : i13 = 214;
8238 286438 : break;
8239 286438 : }
8240 286438 : i18 = HEAP32[i21 + 8 >> 2] | 0;
8241 286438 : if ((i18 | 0) == 0) {
8242 286438 : break;
8243 286438 : } else {
8244 286438 : i21 = i18;
8245 286438 : }
8246 286438 : }
8247 286438 : if (((i13 | 0) == 214 ? (HEAP32[i21 + 12 >> 2] & 8 | 0) == 0 : 0) ? i15 >>> 0 >= i16 >>> 0 & i15 >>> 0 < i17 >>> 0 : 0) {
8248 286438 : HEAP32[i19 >> 2] = i20 + i14;
8249 286438 : i2 = (HEAP32[12924 >> 2] | 0) + i14 | 0;
8250 286438 : i3 = i15 + 8 | 0;
8251 286438 : if ((i3 & 7 | 0) == 0) {
8252 286438 : i3 = 0;
8253 286438 : } else {
8254 286438 : i3 = 0 - i3 & 7;
8255 286438 : }
8256 286438 : i32 = i2 - i3 | 0;
8257 286438 : HEAP32[12936 >> 2] = i15 + i3;
8258 286438 : HEAP32[12924 >> 2] = i32;
8259 286438 : HEAP32[i15 + (i3 + 4) >> 2] = i32 | 1;
8260 286438 : HEAP32[i15 + (i2 + 4) >> 2] = 40;
8261 286438 : HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
8262 286438 : break;
8263 286438 : }
8264 286438 : if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8265 286438 : HEAP32[12928 >> 2] = i17;
8266 286438 : }
8267 286438 : i19 = i17 + i14 | 0;
8268 286438 : i16 = 13360 | 0;
8269 286438 : while (1) {
8270 286438 : if ((HEAP32[i16 >> 2] | 0) == (i19 | 0)) {
8271 286438 : i13 = 224;
8272 286438 : break;
8273 286438 : }
8274 286438 : i18 = HEAP32[i16 + 8 >> 2] | 0;
8275 286438 : if ((i18 | 0) == 0) {
8276 286438 : break;
8277 286438 : } else {
8278 286438 : i16 = i18;
8279 286438 : }
8280 286438 : }
8281 286438 : if ((i13 | 0) == 224 ? (HEAP32[i16 + 12 >> 2] & 8 | 0) == 0 : 0) {
8282 286438 : HEAP32[i16 >> 2] = i17;
8283 286438 : i6 = i16 + 4 | 0;
8284 286438 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i14;
8285 286438 : i6 = i17 + 8 | 0;
8286 286438 : if ((i6 & 7 | 0) == 0) {
8287 286438 : i6 = 0;
8288 286438 : } else {
8289 286438 : i6 = 0 - i6 & 7;
8290 286438 : }
8291 286438 : i7 = i17 + (i14 + 8) | 0;
8292 286438 : if ((i7 & 7 | 0) == 0) {
8293 286438 : i13 = 0;
8294 286438 : } else {
8295 286438 : i13 = 0 - i7 & 7;
8296 286438 : }
8297 286438 : i15 = i17 + (i13 + i14) | 0;
8298 286438 : i8 = i6 + i12 | 0;
8299 286438 : i7 = i17 + i8 | 0;
8300 286438 : i10 = i15 - (i17 + i6) - i12 | 0;
8301 286438 : HEAP32[i17 + (i6 + 4) >> 2] = i12 | 3;
8302 286438 : L348 : do {
8303 286438 : if ((i15 | 0) != (HEAP32[12936 >> 2] | 0)) {
8304 286438 : if ((i15 | 0) == (HEAP32[12932 >> 2] | 0)) {
8305 286438 : i32 = (HEAP32[12920 >> 2] | 0) + i10 | 0;
8306 286438 : HEAP32[12920 >> 2] = i32;
8307 286438 : HEAP32[12932 >> 2] = i7;
8308 286438 : HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
8309 286438 : HEAP32[i17 + (i32 + i8) >> 2] = i32;
8310 286438 : break;
8311 286438 : }
8312 286438 : i12 = i14 + 4 | 0;
8313 286438 : i18 = HEAP32[i17 + (i12 + i13) >> 2] | 0;
8314 286438 : if ((i18 & 3 | 0) == 1) {
8315 286438 : i11 = i18 & -8;
8316 286438 : i16 = i18 >>> 3;
8317 286438 : do {
8318 286438 : if (!(i18 >>> 0 < 256)) {
8319 286438 : i9 = HEAP32[i17 + ((i13 | 24) + i14) >> 2] | 0;
8320 286438 : i19 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
8321 286438 : do {
8322 286438 : if ((i19 | 0) == (i15 | 0)) {
8323 286438 : i19 = i13 | 16;
8324 286438 : i18 = i17 + (i12 + i19) | 0;
8325 286438 : i16 = HEAP32[i18 >> 2] | 0;
8326 286438 : if ((i16 | 0) == 0) {
8327 286438 : i18 = i17 + (i19 + i14) | 0;
8328 286438 : i16 = HEAP32[i18 >> 2] | 0;
8329 286438 : if ((i16 | 0) == 0) {
8330 286438 : i5 = 0;
8331 286438 : break;
8332 286438 : }
8333 286438 : }
8334 286438 : while (1) {
8335 286438 : i20 = i16 + 20 | 0;
8336 286438 : i19 = HEAP32[i20 >> 2] | 0;
8337 286438 : if ((i19 | 0) != 0) {
8338 286438 : i16 = i19;
8339 286438 : i18 = i20;
8340 286438 : continue;
8341 286438 : }
8342 286438 : i19 = i16 + 16 | 0;
8343 286438 : i20 = HEAP32[i19 >> 2] | 0;
8344 286438 : if ((i20 | 0) == 0) {
8345 286438 : break;
8346 286438 : } else {
8347 286438 : i16 = i20;
8348 286438 : i18 = i19;
8349 286438 : }
8350 286438 : }
8351 286438 : if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8352 286438 : _abort();
8353 286438 : } else {
8354 286438 : HEAP32[i18 >> 2] = 0;
8355 286438 : i5 = i16;
8356 286438 : break;
8357 286438 : }
8358 286438 : } else {
8359 286438 : i18 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
8360 286438 : if (i18 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8361 286438 : _abort();
8362 286438 : }
8363 286438 : i16 = i18 + 12 | 0;
8364 286438 : if ((HEAP32[i16 >> 2] | 0) != (i15 | 0)) {
8365 286438 : _abort();
8366 286438 : }
8367 286438 : i20 = i19 + 8 | 0;
8368 286438 : if ((HEAP32[i20 >> 2] | 0) == (i15 | 0)) {
8369 286438 : HEAP32[i16 >> 2] = i19;
8370 286438 : HEAP32[i20 >> 2] = i18;
8371 286438 : i5 = i19;
8372 286438 : break;
8373 286438 : } else {
8374 286438 : _abort();
8375 286438 : }
8376 286438 : }
8377 286438 : } while (0);
8378 286438 : if ((i9 | 0) != 0) {
8379 286438 : i16 = HEAP32[i17 + (i14 + 28 + i13) >> 2] | 0;
8380 286438 : i18 = 13216 + (i16 << 2) | 0;
8381 286438 : if ((i15 | 0) == (HEAP32[i18 >> 2] | 0)) {
8382 286438 : HEAP32[i18 >> 2] = i5;
8383 286438 : if ((i5 | 0) == 0) {
8384 286438 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i16);
8385 286438 : break;
8386 286438 : }
8387 286438 : } else {
8388 286438 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8389 286438 : _abort();
8390 286438 : }
8391 286438 : i16 = i9 + 16 | 0;
8392 286438 : if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
8393 286438 : HEAP32[i16 >> 2] = i5;
8394 286438 : } else {
8395 286438 : HEAP32[i9 + 20 >> 2] = i5;
8396 286438 : }
8397 286438 : if ((i5 | 0) == 0) {
8398 286438 : break;
8399 286438 : }
8400 286438 : }
8401 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8402 286438 : _abort();
8403 286438 : }
8404 286438 : HEAP32[i5 + 24 >> 2] = i9;
8405 286438 : i15 = i13 | 16;
8406 286438 : i9 = HEAP32[i17 + (i15 + i14) >> 2] | 0;
8407 286438 : do {
8408 286438 : if ((i9 | 0) != 0) {
8409 286438 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8410 286438 : _abort();
8411 286438 : } else {
8412 286438 : HEAP32[i5 + 16 >> 2] = i9;
8413 286438 : HEAP32[i9 + 24 >> 2] = i5;
8414 286438 : break;
8415 286438 : }
8416 286438 : }
8417 286438 : } while (0);
8418 286438 : i9 = HEAP32[i17 + (i12 + i15) >> 2] | 0;
8419 286438 : if ((i9 | 0) != 0) {
8420 286438 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8421 286438 : _abort();
8422 286438 : } else {
8423 286438 : HEAP32[i5 + 20 >> 2] = i9;
8424 286438 : HEAP32[i9 + 24 >> 2] = i5;
8425 286438 : break;
8426 286438 : }
8427 286438 : }
8428 286438 : }
8429 286438 : } else {
8430 286438 : i5 = HEAP32[i17 + ((i13 | 8) + i14) >> 2] | 0;
8431 286438 : i12 = HEAP32[i17 + (i14 + 12 + i13) >> 2] | 0;
8432 286438 : i18 = 12952 + (i16 << 1 << 2) | 0;
8433 286438 : if ((i5 | 0) != (i18 | 0)) {
8434 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8435 286438 : _abort();
8436 286438 : }
8437 286438 : if ((HEAP32[i5 + 12 >> 2] | 0) != (i15 | 0)) {
8438 286438 : _abort();
8439 286438 : }
8440 286438 : }
8441 286438 : if ((i12 | 0) == (i5 | 0)) {
8442 286438 : HEAP32[3228] = HEAP32[3228] & ~(1 << i16);
8443 286438 : break;
8444 286438 : }
8445 286438 : if ((i12 | 0) != (i18 | 0)) {
8446 286438 : if (i12 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8447 286438 : _abort();
8448 286438 : }
8449 286438 : i16 = i12 + 8 | 0;
8450 286438 : if ((HEAP32[i16 >> 2] | 0) == (i15 | 0)) {
8451 286438 : i9 = i16;
8452 286438 : } else {
8453 286438 : _abort();
8454 286438 : }
8455 286438 : } else {
8456 286438 : i9 = i12 + 8 | 0;
8457 286438 : }
8458 286438 : HEAP32[i5 + 12 >> 2] = i12;
8459 286438 : HEAP32[i9 >> 2] = i5;
8460 286438 : }
8461 286438 : } while (0);
8462 286438 : i15 = i17 + ((i11 | i13) + i14) | 0;
8463 286438 : i10 = i11 + i10 | 0;
8464 286438 : }
8465 286438 : i5 = i15 + 4 | 0;
8466 286438 : HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & -2;
8467 286438 : HEAP32[i17 + (i8 + 4) >> 2] = i10 | 1;
8468 286438 : HEAP32[i17 + (i10 + i8) >> 2] = i10;
8469 286438 : i5 = i10 >>> 3;
8470 286438 : if (i10 >>> 0 < 256) {
8471 286438 : i10 = i5 << 1;
8472 286438 : i2 = 12952 + (i10 << 2) | 0;
8473 286438 : i9 = HEAP32[3228] | 0;
8474 286438 : i5 = 1 << i5;
8475 286438 : if ((i9 & i5 | 0) != 0) {
8476 286438 : i9 = 12952 + (i10 + 2 << 2) | 0;
8477 286438 : i5 = HEAP32[i9 >> 2] | 0;
8478 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8479 286438 : _abort();
8480 286438 : } else {
8481 286438 : i3 = i9;
8482 286438 : i4 = i5;
8483 286438 : }
8484 286438 : } else {
8485 286438 : HEAP32[3228] = i9 | i5;
8486 286438 : i3 = 12952 + (i10 + 2 << 2) | 0;
8487 286438 : i4 = i2;
8488 286438 : }
8489 286438 : HEAP32[i3 >> 2] = i7;
8490 286438 : HEAP32[i4 + 12 >> 2] = i7;
8491 286438 : HEAP32[i17 + (i8 + 8) >> 2] = i4;
8492 286438 : HEAP32[i17 + (i8 + 12) >> 2] = i2;
8493 286438 : break;
8494 286438 : }
8495 286438 : i3 = i10 >>> 8;
8496 286438 : if ((i3 | 0) != 0) {
8497 286438 : if (i10 >>> 0 > 16777215) {
8498 286438 : i3 = 31;
8499 286438 : } else {
8500 286438 : i31 = (i3 + 1048320 | 0) >>> 16 & 8;
8501 286438 : i32 = i3 << i31;
8502 286438 : i30 = (i32 + 520192 | 0) >>> 16 & 4;
8503 286438 : i32 = i32 << i30;
8504 286438 : i3 = (i32 + 245760 | 0) >>> 16 & 2;
8505 286438 : i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
8506 286438 : i3 = i10 >>> (i3 + 7 | 0) & 1 | i3 << 1;
8507 286438 : }
8508 286438 : } else {
8509 286438 : i3 = 0;
8510 286438 : }
8511 286438 : i4 = 13216 + (i3 << 2) | 0;
8512 286438 : HEAP32[i17 + (i8 + 28) >> 2] = i3;
8513 286438 : HEAP32[i17 + (i8 + 20) >> 2] = 0;
8514 286438 : HEAP32[i17 + (i8 + 16) >> 2] = 0;
8515 286438 : i9 = HEAP32[12916 >> 2] | 0;
8516 286438 : i5 = 1 << i3;
8517 286438 : if ((i9 & i5 | 0) == 0) {
8518 286438 : HEAP32[12916 >> 2] = i9 | i5;
8519 286438 : HEAP32[i4 >> 2] = i7;
8520 286438 : HEAP32[i17 + (i8 + 24) >> 2] = i4;
8521 286438 : HEAP32[i17 + (i8 + 12) >> 2] = i7;
8522 286438 : HEAP32[i17 + (i8 + 8) >> 2] = i7;
8523 286438 : break;
8524 286438 : }
8525 286438 : i4 = HEAP32[i4 >> 2] | 0;
8526 286438 : if ((i3 | 0) == 31) {
8527 286438 : i3 = 0;
8528 286438 : } else {
8529 286438 : i3 = 25 - (i3 >>> 1) | 0;
8530 286438 : }
8531 286438 : L445 : do {
8532 286438 : if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i10 | 0)) {
8533 286438 : i3 = i10 << i3;
8534 286438 : while (1) {
8535 286438 : i5 = i4 + (i3 >>> 31 << 2) + 16 | 0;
8536 286438 : i9 = HEAP32[i5 >> 2] | 0;
8537 286438 : if ((i9 | 0) == 0) {
8538 286438 : break;
8539 286438 : }
8540 286438 : if ((HEAP32[i9 + 4 >> 2] & -8 | 0) == (i10 | 0)) {
8541 286438 : i2 = i9;
8542 286438 : break L445;
8543 286438 : } else {
8544 286438 : i3 = i3 << 1;
8545 286438 : i4 = i9;
8546 286438 : }
8547 286438 : }
8548 286438 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8549 286438 : _abort();
8550 286438 : } else {
8551 286438 : HEAP32[i5 >> 2] = i7;
8552 286438 : HEAP32[i17 + (i8 + 24) >> 2] = i4;
8553 286438 : HEAP32[i17 + (i8 + 12) >> 2] = i7;
8554 286438 : HEAP32[i17 + (i8 + 8) >> 2] = i7;
8555 286438 : break L348;
8556 286438 : }
8557 286438 : } else {
8558 286438 : i2 = i4;
8559 286438 : }
8560 286438 : } while (0);
8561 286438 : i4 = i2 + 8 | 0;
8562 286438 : i3 = HEAP32[i4 >> 2] | 0;
8563 286438 : i5 = HEAP32[12928 >> 2] | 0;
8564 286438 : if (i2 >>> 0 < i5 >>> 0) {
8565 286438 : _abort();
8566 286438 : }
8567 286438 : if (i3 >>> 0 < i5 >>> 0) {
8568 286438 : _abort();
8569 286438 : } else {
8570 286438 : HEAP32[i3 + 12 >> 2] = i7;
8571 286438 : HEAP32[i4 >> 2] = i7;
8572 286438 : HEAP32[i17 + (i8 + 8) >> 2] = i3;
8573 286438 : HEAP32[i17 + (i8 + 12) >> 2] = i2;
8574 286438 : HEAP32[i17 + (i8 + 24) >> 2] = 0;
8575 286438 : break;
8576 286438 : }
8577 286438 : } else {
8578 286438 : i32 = (HEAP32[12924 >> 2] | 0) + i10 | 0;
8579 286438 : HEAP32[12924 >> 2] = i32;
8580 286438 : HEAP32[12936 >> 2] = i7;
8581 286438 : HEAP32[i17 + (i8 + 4) >> 2] = i32 | 1;
8582 286438 : }
8583 286438 : } while (0);
8584 286438 : i32 = i17 + (i6 | 8) | 0;
8585 286438 : STACKTOP = i1;
8586 286438 : return i32 | 0;
8587 286438 : }
8588 286438 : i3 = 13360 | 0;
8589 286438 : while (1) {
8590 286438 : i2 = HEAP32[i3 >> 2] | 0;
8591 286438 : if (!(i2 >>> 0 > i15 >>> 0) ? (i11 = HEAP32[i3 + 4 >> 2] | 0, i10 = i2 + i11 | 0, i10 >>> 0 > i15 >>> 0) : 0) {
8592 286438 : break;
8593 286438 : }
8594 286438 : i3 = HEAP32[i3 + 8 >> 2] | 0;
8595 286438 : }
8596 286438 : i3 = i2 + (i11 + -39) | 0;
8597 286438 : if ((i3 & 7 | 0) == 0) {
8598 286438 : i3 = 0;
8599 286438 : } else {
8600 286438 : i3 = 0 - i3 & 7;
8601 286438 : }
8602 286438 : i2 = i2 + (i11 + -47 + i3) | 0;
8603 286438 : i2 = i2 >>> 0 < (i15 + 16 | 0) >>> 0 ? i15 : i2;
8604 286438 : i3 = i2 + 8 | 0;
8605 286438 : i4 = i17 + 8 | 0;
8606 286438 : if ((i4 & 7 | 0) == 0) {
8607 286438 : i4 = 0;
8608 286438 : } else {
8609 286438 : i4 = 0 - i4 & 7;
8610 286438 : }
8611 286438 : i32 = i14 + -40 - i4 | 0;
8612 286438 : HEAP32[12936 >> 2] = i17 + i4;
8613 286438 : HEAP32[12924 >> 2] = i32;
8614 286438 : HEAP32[i17 + (i4 + 4) >> 2] = i32 | 1;
8615 286438 : HEAP32[i17 + (i14 + -36) >> 2] = 40;
8616 286438 : HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
8617 286438 : HEAP32[i2 + 4 >> 2] = 27;
8618 286438 : HEAP32[i3 + 0 >> 2] = HEAP32[13360 >> 2];
8619 286438 : HEAP32[i3 + 4 >> 2] = HEAP32[13364 >> 2];
8620 286438 : HEAP32[i3 + 8 >> 2] = HEAP32[13368 >> 2];
8621 286438 : HEAP32[i3 + 12 >> 2] = HEAP32[13372 >> 2];
8622 286438 : HEAP32[13360 >> 2] = i17;
8623 286438 : HEAP32[13364 >> 2] = i14;
8624 286438 : HEAP32[13372 >> 2] = 0;
8625 286438 : HEAP32[13368 >> 2] = i3;
8626 286438 : i4 = i2 + 28 | 0;
8627 286438 : HEAP32[i4 >> 2] = 7;
8628 286438 : if ((i2 + 32 | 0) >>> 0 < i10 >>> 0) {
8629 286438 : while (1) {
8630 286438 : i3 = i4 + 4 | 0;
8631 286438 : HEAP32[i3 >> 2] = 7;
8632 286438 : if ((i4 + 8 | 0) >>> 0 < i10 >>> 0) {
8633 286438 : i4 = i3;
8634 286438 : } else {
8635 286438 : break;
8636 286438 : }
8637 286438 : }
8638 286438 : }
8639 286438 : if ((i2 | 0) != (i15 | 0)) {
8640 286438 : i2 = i2 - i15 | 0;
8641 286438 : i3 = i15 + (i2 + 4) | 0;
8642 286438 : HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & -2;
8643 286438 : HEAP32[i15 + 4 >> 2] = i2 | 1;
8644 286438 : HEAP32[i15 + i2 >> 2] = i2;
8645 286438 : i3 = i2 >>> 3;
8646 286438 : if (i2 >>> 0 < 256) {
8647 286438 : i4 = i3 << 1;
8648 286438 : i2 = 12952 + (i4 << 2) | 0;
8649 286438 : i5 = HEAP32[3228] | 0;
8650 286438 : i3 = 1 << i3;
8651 286438 : if ((i5 & i3 | 0) != 0) {
8652 286438 : i4 = 12952 + (i4 + 2 << 2) | 0;
8653 286438 : i3 = HEAP32[i4 >> 2] | 0;
8654 286438 : if (i3 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8655 286438 : _abort();
8656 286438 : } else {
8657 286438 : i7 = i4;
8658 286438 : i8 = i3;
8659 286438 : }
8660 286438 : } else {
8661 286438 : HEAP32[3228] = i5 | i3;
8662 286438 : i7 = 12952 + (i4 + 2 << 2) | 0;
8663 286438 : i8 = i2;
8664 286438 : }
8665 286438 : HEAP32[i7 >> 2] = i15;
8666 286438 : HEAP32[i8 + 12 >> 2] = i15;
8667 286438 : HEAP32[i15 + 8 >> 2] = i8;
8668 286438 : HEAP32[i15 + 12 >> 2] = i2;
8669 286438 : break;
8670 286438 : }
8671 286438 : i3 = i2 >>> 8;
8672 286438 : if ((i3 | 0) != 0) {
8673 286438 : if (i2 >>> 0 > 16777215) {
8674 286438 : i3 = 31;
8675 286438 : } else {
8676 286438 : i31 = (i3 + 1048320 | 0) >>> 16 & 8;
8677 286438 : i32 = i3 << i31;
8678 286438 : i30 = (i32 + 520192 | 0) >>> 16 & 4;
8679 286438 : i32 = i32 << i30;
8680 286438 : i3 = (i32 + 245760 | 0) >>> 16 & 2;
8681 286438 : i3 = 14 - (i30 | i31 | i3) + (i32 << i3 >>> 15) | 0;
8682 286438 : i3 = i2 >>> (i3 + 7 | 0) & 1 | i3 << 1;
8683 286438 : }
8684 286438 : } else {
8685 286438 : i3 = 0;
8686 286438 : }
8687 286438 : i7 = 13216 + (i3 << 2) | 0;
8688 286438 : HEAP32[i15 + 28 >> 2] = i3;
8689 286438 : HEAP32[i15 + 20 >> 2] = 0;
8690 286438 : HEAP32[i15 + 16 >> 2] = 0;
8691 286438 : i4 = HEAP32[12916 >> 2] | 0;
8692 286438 : i5 = 1 << i3;
8693 286438 : if ((i4 & i5 | 0) == 0) {
8694 286438 : HEAP32[12916 >> 2] = i4 | i5;
8695 286438 : HEAP32[i7 >> 2] = i15;
8696 286438 : HEAP32[i15 + 24 >> 2] = i7;
8697 286438 : HEAP32[i15 + 12 >> 2] = i15;
8698 286438 : HEAP32[i15 + 8 >> 2] = i15;
8699 286438 : break;
8700 286438 : }
8701 286438 : i4 = HEAP32[i7 >> 2] | 0;
8702 286438 : if ((i3 | 0) == 31) {
8703 286438 : i3 = 0;
8704 286438 : } else {
8705 286438 : i3 = 25 - (i3 >>> 1) | 0;
8706 286438 : }
8707 286438 : L499 : do {
8708 286438 : if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i2 | 0)) {
8709 286438 : i3 = i2 << i3;
8710 286438 : while (1) {
8711 286438 : i7 = i4 + (i3 >>> 31 << 2) + 16 | 0;
8712 286438 : i5 = HEAP32[i7 >> 2] | 0;
8713 286438 : if ((i5 | 0) == 0) {
8714 286438 : break;
8715 286438 : }
8716 286438 : if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i2 | 0)) {
8717 286438 : i6 = i5;
8718 286438 : break L499;
8719 286438 : } else {
8720 286438 : i3 = i3 << 1;
8721 286438 : i4 = i5;
8722 286438 : }
8723 286438 : }
8724 286438 : if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
8725 286438 : _abort();
8726 286438 : } else {
8727 286438 : HEAP32[i7 >> 2] = i15;
8728 286438 : HEAP32[i15 + 24 >> 2] = i4;
8729 286438 : HEAP32[i15 + 12 >> 2] = i15;
8730 286438 : HEAP32[i15 + 8 >> 2] = i15;
8731 286438 : break L311;
8732 286438 : }
8733 286438 : } else {
8734 286438 : i6 = i4;
8735 286438 : }
8736 286438 : } while (0);
8737 286438 : i4 = i6 + 8 | 0;
8738 286438 : i3 = HEAP32[i4 >> 2] | 0;
8739 286438 : i2 = HEAP32[12928 >> 2] | 0;
8740 286438 : if (i6 >>> 0 < i2 >>> 0) {
8741 286438 : _abort();
8742 286438 : }
8743 286438 : if (i3 >>> 0 < i2 >>> 0) {
8744 286438 : _abort();
8745 286438 : } else {
8746 286438 : HEAP32[i3 + 12 >> 2] = i15;
8747 286438 : HEAP32[i4 >> 2] = i15;
8748 286438 : HEAP32[i15 + 8 >> 2] = i3;
8749 286438 : HEAP32[i15 + 12 >> 2] = i6;
8750 286438 : HEAP32[i15 + 24 >> 2] = 0;
8751 286438 : break;
8752 286438 : }
8753 286438 : }
8754 286438 : } else {
8755 286438 : i32 = HEAP32[12928 >> 2] | 0;
8756 286438 : if ((i32 | 0) == 0 | i17 >>> 0 < i32 >>> 0) {
8757 286438 : HEAP32[12928 >> 2] = i17;
8758 286438 : }
8759 286438 : HEAP32[13360 >> 2] = i17;
8760 286438 : HEAP32[13364 >> 2] = i14;
8761 286438 : HEAP32[13372 >> 2] = 0;
8762 286438 : HEAP32[12948 >> 2] = HEAP32[3346];
8763 286438 : HEAP32[12944 >> 2] = -1;
8764 286438 : i2 = 0;
8765 286438 : do {
8766 286438 : i32 = i2 << 1;
8767 286438 : i31 = 12952 + (i32 << 2) | 0;
8768 286438 : HEAP32[12952 + (i32 + 3 << 2) >> 2] = i31;
8769 286438 : HEAP32[12952 + (i32 + 2 << 2) >> 2] = i31;
8770 286438 : i2 = i2 + 1 | 0;
8771 286438 : } while ((i2 | 0) != 32);
8772 286438 : i2 = i17 + 8 | 0;
8773 286438 : if ((i2 & 7 | 0) == 0) {
8774 286438 : i2 = 0;
8775 286438 : } else {
8776 286438 : i2 = 0 - i2 & 7;
8777 286438 : }
8778 286438 : i32 = i14 + -40 - i2 | 0;
8779 286438 : HEAP32[12936 >> 2] = i17 + i2;
8780 286438 : HEAP32[12924 >> 2] = i32;
8781 286438 : HEAP32[i17 + (i2 + 4) >> 2] = i32 | 1;
8782 286438 : HEAP32[i17 + (i14 + -36) >> 2] = 40;
8783 286438 : HEAP32[12940 >> 2] = HEAP32[13400 >> 2];
8784 286438 : }
8785 286438 : } while (0);
8786 286438 : i2 = HEAP32[12924 >> 2] | 0;
8787 286438 : if (i2 >>> 0 > i12 >>> 0) {
8788 286438 : i31 = i2 - i12 | 0;
8789 286438 : HEAP32[12924 >> 2] = i31;
8790 286438 : i32 = HEAP32[12936 >> 2] | 0;
8791 286438 : HEAP32[12936 >> 2] = i32 + i12;
8792 286438 : HEAP32[i32 + (i12 + 4) >> 2] = i31 | 1;
8793 286438 : HEAP32[i32 + 4 >> 2] = i12 | 3;
8794 286438 : i32 = i32 + 8 | 0;
8795 286438 : STACKTOP = i1;
8796 286438 : return i32 | 0;
8797 286438 : }
8798 286438 : }
8799 286438 : HEAP32[(___errno_location() | 0) >> 2] = 12;
8800 286438 : i32 = 0;
8801 286438 : STACKTOP = i1;
8802 286438 : return i32 | 0;
8803 286438 : }
8804 322 : function _llex(i2, i3) {
8805 322 : i2 = i2 | 0;
8806 322 : i3 = i3 | 0;
8807 322 : var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0;
8808 322 : i1 = STACKTOP;
8809 322 : STACKTOP = STACKTOP + 16 | 0;
8810 322 : i12 = i1;
8811 322 : i4 = i2 + 60 | 0;
8812 322 : HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
8813 322 : i5 = i2 + 56 | 0;
8814 322 : L1 : while (1) {
8815 322 : i13 = HEAP32[i2 >> 2] | 0;
8816 322 : L3 : while (1) {
8817 322 : switch (i13 | 0) {
8818 322 : case 11:
8819 322 : case 9:
8820 322 : case 12:
8821 322 : case 32:
8822 322 : {
8823 322 : break;
8824 322 : }
8825 322 : case 91:
8826 322 : {
8827 322 : i9 = 25;
8828 322 : break L1;
8829 322 : }
8830 322 : case 62:
8831 322 : {
8832 322 : i9 = 45;
8833 322 : break L1;
8834 322 : }
8835 322 : case 46:
8836 322 : {
8837 322 : i9 = 161;
8838 322 : break L1;
8839 322 : }
8840 322 : case 13:
8841 322 : case 10:
8842 322 : {
8843 322 : i9 = 4;
8844 322 : break L3;
8845 322 : }
8846 322 : case 45:
8847 322 : {
8848 322 : break L3;
8849 322 : }
8850 322 : case 61:
8851 322 : {
8852 322 : i9 = 29;
8853 322 : break L1;
8854 322 : }
8855 322 : case 39:
8856 322 : case 34:
8857 322 : {
8858 322 : i9 = 69;
8859 322 : break L1;
8860 322 : }
8861 322 : case 126:
8862 322 : {
8863 322 : i9 = 53;
8864 322 : break L1;
8865 322 : }
8866 322 : case 60:
8867 322 : {
8868 322 : i9 = 37;
8869 322 : break L1;
8870 322 : }
8871 322 : case 58:
8872 322 : {
8873 322 : i9 = 61;
8874 322 : break L1;
8875 322 : }
8876 322 : case 57:
8877 322 : case 56:
8878 322 : case 55:
8879 322 : case 54:
8880 322 : case 53:
8881 322 : case 52:
8882 322 : case 51:
8883 322 : case 50:
8884 322 : case 49:
8885 322 : case 48:
8886 322 : {
8887 322 : i20 = i13;
8888 322 : break L1;
8889 322 : }
8890 322 : case -1:
8891 322 : {
8892 322 : i2 = 286;
8893 322 : i9 = 306;
8894 322 : break L1;
8895 322 : }
8896 322 : default:
8897 322 : {
8898 322 : i9 = 283;
8899 322 : break L1;
8900 322 : }
8901 322 : }
8902 322 : i13 = HEAP32[i5 >> 2] | 0;
8903 322 : i27 = HEAP32[i13 >> 2] | 0;
8904 322 : HEAP32[i13 >> 2] = i27 + -1;
8905 322 : if ((i27 | 0) == 0) {
8906 322 : i13 = _luaZ_fill(i13) | 0;
8907 322 : } else {
8908 322 : i27 = i13 + 4 | 0;
8909 322 : i13 = HEAP32[i27 >> 2] | 0;
8910 322 : HEAP32[i27 >> 2] = i13 + 1;
8911 322 : i13 = HEAPU8[i13] | 0;
8912 322 : }
8913 322 : HEAP32[i2 >> 2] = i13;
8914 322 : }
8915 322 : if ((i9 | 0) == 4) {
8916 322 : i9 = 0;
8917 322 : _inclinenumber(i2);
8918 322 : continue;
8919 322 : }
8920 322 : i13 = HEAP32[i5 >> 2] | 0;
8921 322 : i27 = HEAP32[i13 >> 2] | 0;
8922 322 : HEAP32[i13 >> 2] = i27 + -1;
8923 322 : if ((i27 | 0) == 0) {
8924 322 : i13 = _luaZ_fill(i13) | 0;
8925 322 : } else {
8926 322 : i27 = i13 + 4 | 0;
8927 322 : i13 = HEAP32[i27 >> 2] | 0;
8928 322 : HEAP32[i27 >> 2] = i13 + 1;
8929 322 : i13 = HEAPU8[i13] | 0;
8930 322 : }
8931 322 : HEAP32[i2 >> 2] = i13;
8932 322 : if ((i13 | 0) != 45) {
8933 322 : i2 = 45;
8934 322 : i9 = 306;
8935 322 : break;
8936 322 : }
8937 322 : i13 = HEAP32[i5 >> 2] | 0;
8938 322 : i27 = HEAP32[i13 >> 2] | 0;
8939 322 : HEAP32[i13 >> 2] = i27 + -1;
8940 322 : if ((i27 | 0) == 0) {
8941 322 : i13 = _luaZ_fill(i13) | 0;
8942 322 : } else {
8943 322 : i27 = i13 + 4 | 0;
8944 322 : i13 = HEAP32[i27 >> 2] | 0;
8945 322 : HEAP32[i27 >> 2] = i13 + 1;
8946 322 : i13 = HEAPU8[i13] | 0;
8947 322 : }
8948 322 : HEAP32[i2 >> 2] = i13;
8949 322 : do {
8950 322 : if ((i13 | 0) == 91) {
8951 322 : i13 = _skip_sep(i2) | 0;
8952 322 : HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
8953 322 : if ((i13 | 0) > -1) {
8954 322 : _read_long_string(i2, 0, i13);
8955 322 : HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
8956 322 : continue L1;
8957 322 : } else {
8958 322 : i13 = HEAP32[i2 >> 2] | 0;
8959 322 : break;
8960 322 : }
8961 322 : }
8962 322 : } while (0);
8963 322 : while (1) {
8964 322 : if ((i13 | 0) == -1 | (i13 | 0) == 13 | (i13 | 0) == 10) {
8965 322 : continue L1;
8966 322 : }
8967 322 : i13 = HEAP32[i5 >> 2] | 0;
8968 322 : i27 = HEAP32[i13 >> 2] | 0;
8969 322 : HEAP32[i13 >> 2] = i27 + -1;
8970 322 : if ((i27 | 0) == 0) {
8971 322 : i13 = _luaZ_fill(i13) | 0;
8972 322 : } else {
8973 322 : i27 = i13 + 4 | 0;
8974 322 : i13 = HEAP32[i27 >> 2] | 0;
8975 322 : HEAP32[i27 >> 2] = i13 + 1;
8976 322 : i13 = HEAPU8[i13] | 0;
8977 322 : }
8978 322 : HEAP32[i2 >> 2] = i13;
8979 322 : }
8980 322 : }
8981 322 : if ((i9 | 0) == 25) {
8982 322 : i9 = _skip_sep(i2) | 0;
8983 322 : if ((i9 | 0) > -1) {
8984 322 : _read_long_string(i2, i3, i9);
8985 322 : i27 = 289;
8986 322 : STACKTOP = i1;
8987 322 : return i27 | 0;
8988 322 : }
8989 322 : if ((i9 | 0) == -1) {
8990 322 : i27 = 91;
8991 322 : STACKTOP = i1;
8992 322 : return i27 | 0;
8993 322 : } else {
8994 322 : _lexerror(i2, 12272, 289);
8995 322 : }
8996 322 : } else if ((i9 | 0) == 29) {
8997 322 : i3 = HEAP32[i5 >> 2] | 0;
8998 322 : i27 = HEAP32[i3 >> 2] | 0;
8999 322 : HEAP32[i3 >> 2] = i27 + -1;
9000 322 : if ((i27 | 0) == 0) {
9001 322 : i3 = _luaZ_fill(i3) | 0;
9002 322 : } else {
9003 322 : i27 = i3 + 4 | 0;
9004 322 : i3 = HEAP32[i27 >> 2] | 0;
9005 322 : HEAP32[i27 >> 2] = i3 + 1;
9006 322 : i3 = HEAPU8[i3] | 0;
9007 322 : }
9008 322 : HEAP32[i2 >> 2] = i3;
9009 322 : if ((i3 | 0) != 61) {
9010 322 : i27 = 61;
9011 322 : STACKTOP = i1;
9012 322 : return i27 | 0;
9013 322 : }
9014 322 : i3 = HEAP32[i5 >> 2] | 0;
9015 322 : i27 = HEAP32[i3 >> 2] | 0;
9016 322 : HEAP32[i3 >> 2] = i27 + -1;
9017 322 : if ((i27 | 0) == 0) {
9018 322 : i3 = _luaZ_fill(i3) | 0;
9019 322 : } else {
9020 322 : i27 = i3 + 4 | 0;
9021 322 : i3 = HEAP32[i27 >> 2] | 0;
9022 322 : HEAP32[i27 >> 2] = i3 + 1;
9023 322 : i3 = HEAPU8[i3] | 0;
9024 322 : }
9025 322 : HEAP32[i2 >> 2] = i3;
9026 322 : i27 = 281;
9027 322 : STACKTOP = i1;
9028 322 : return i27 | 0;
9029 322 : } else if ((i9 | 0) == 37) {
9030 322 : i3 = HEAP32[i5 >> 2] | 0;
9031 322 : i27 = HEAP32[i3 >> 2] | 0;
9032 322 : HEAP32[i3 >> 2] = i27 + -1;
9033 322 : if ((i27 | 0) == 0) {
9034 322 : i3 = _luaZ_fill(i3) | 0;
9035 322 : } else {
9036 322 : i27 = i3 + 4 | 0;
9037 322 : i3 = HEAP32[i27 >> 2] | 0;
9038 322 : HEAP32[i27 >> 2] = i3 + 1;
9039 322 : i3 = HEAPU8[i3] | 0;
9040 322 : }
9041 322 : HEAP32[i2 >> 2] = i3;
9042 322 : if ((i3 | 0) != 61) {
9043 322 : i27 = 60;
9044 322 : STACKTOP = i1;
9045 322 : return i27 | 0;
9046 322 : }
9047 322 : i3 = HEAP32[i5 >> 2] | 0;
9048 322 : i27 = HEAP32[i3 >> 2] | 0;
9049 322 : HEAP32[i3 >> 2] = i27 + -1;
9050 322 : if ((i27 | 0) == 0) {
9051 322 : i3 = _luaZ_fill(i3) | 0;
9052 322 : } else {
9053 322 : i27 = i3 + 4 | 0;
9054 322 : i3 = HEAP32[i27 >> 2] | 0;
9055 322 : HEAP32[i27 >> 2] = i3 + 1;
9056 322 : i3 = HEAPU8[i3] | 0;
9057 322 : }
9058 322 : HEAP32[i2 >> 2] = i3;
9059 322 : i27 = 283;
9060 322 : STACKTOP = i1;
9061 322 : return i27 | 0;
9062 322 : } else if ((i9 | 0) == 45) {
9063 322 : i3 = HEAP32[i5 >> 2] | 0;
9064 322 : i27 = HEAP32[i3 >> 2] | 0;
9065 322 : HEAP32[i3 >> 2] = i27 + -1;
9066 322 : if ((i27 | 0) == 0) {
9067 322 : i3 = _luaZ_fill(i3) | 0;
9068 322 : } else {
9069 322 : i27 = i3 + 4 | 0;
9070 322 : i3 = HEAP32[i27 >> 2] | 0;
9071 322 : HEAP32[i27 >> 2] = i3 + 1;
9072 322 : i3 = HEAPU8[i3] | 0;
9073 322 : }
9074 322 : HEAP32[i2 >> 2] = i3;
9075 322 : if ((i3 | 0) != 61) {
9076 322 : i27 = 62;
9077 322 : STACKTOP = i1;
9078 322 : return i27 | 0;
9079 322 : }
9080 322 : i3 = HEAP32[i5 >> 2] | 0;
9081 322 : i27 = HEAP32[i3 >> 2] | 0;
9082 322 : HEAP32[i3 >> 2] = i27 + -1;
9083 322 : if ((i27 | 0) == 0) {
9084 322 : i3 = _luaZ_fill(i3) | 0;
9085 322 : } else {
9086 322 : i27 = i3 + 4 | 0;
9087 322 : i3 = HEAP32[i27 >> 2] | 0;
9088 322 : HEAP32[i27 >> 2] = i3 + 1;
9089 322 : i3 = HEAPU8[i3] | 0;
9090 322 : }
9091 322 : HEAP32[i2 >> 2] = i3;
9092 322 : i27 = 282;
9093 322 : STACKTOP = i1;
9094 322 : return i27 | 0;
9095 322 : } else if ((i9 | 0) == 53) {
9096 322 : i3 = HEAP32[i5 >> 2] | 0;
9097 322 : i27 = HEAP32[i3 >> 2] | 0;
9098 322 : HEAP32[i3 >> 2] = i27 + -1;
9099 322 : if ((i27 | 0) == 0) {
9100 322 : i3 = _luaZ_fill(i3) | 0;
9101 322 : } else {
9102 322 : i27 = i3 + 4 | 0;
9103 322 : i3 = HEAP32[i27 >> 2] | 0;
9104 322 : HEAP32[i27 >> 2] = i3 + 1;
9105 322 : i3 = HEAPU8[i3] | 0;
9106 322 : }
9107 322 : HEAP32[i2 >> 2] = i3;
9108 322 : if ((i3 | 0) != 61) {
9109 322 : i27 = 126;
9110 322 : STACKTOP = i1;
9111 322 : return i27 | 0;
9112 322 : }
9113 322 : i3 = HEAP32[i5 >> 2] | 0;
9114 322 : i27 = HEAP32[i3 >> 2] | 0;
9115 322 : HEAP32[i3 >> 2] = i27 + -1;
9116 322 : if ((i27 | 0) == 0) {
9117 322 : i3 = _luaZ_fill(i3) | 0;
9118 322 : } else {
9119 322 : i27 = i3 + 4 | 0;
9120 322 : i3 = HEAP32[i27 >> 2] | 0;
9121 322 : HEAP32[i27 >> 2] = i3 + 1;
9122 322 : i3 = HEAPU8[i3] | 0;
9123 322 : }
9124 322 : HEAP32[i2 >> 2] = i3;
9125 322 : i27 = 284;
9126 322 : STACKTOP = i1;
9127 322 : return i27 | 0;
9128 322 : } else if ((i9 | 0) == 61) {
9129 322 : i3 = HEAP32[i5 >> 2] | 0;
9130 322 : i27 = HEAP32[i3 >> 2] | 0;
9131 322 : HEAP32[i3 >> 2] = i27 + -1;
9132 322 : if ((i27 | 0) == 0) {
9133 322 : i3 = _luaZ_fill(i3) | 0;
9134 322 : } else {
9135 322 : i27 = i3 + 4 | 0;
9136 322 : i3 = HEAP32[i27 >> 2] | 0;
9137 322 : HEAP32[i27 >> 2] = i3 + 1;
9138 322 : i3 = HEAPU8[i3] | 0;
9139 322 : }
9140 322 : HEAP32[i2 >> 2] = i3;
9141 322 : if ((i3 | 0) != 58) {
9142 322 : i27 = 58;
9143 322 : STACKTOP = i1;
9144 322 : return i27 | 0;
9145 322 : }
9146 322 : i3 = HEAP32[i5 >> 2] | 0;
9147 322 : i27 = HEAP32[i3 >> 2] | 0;
9148 322 : HEAP32[i3 >> 2] = i27 + -1;
9149 322 : if ((i27 | 0) == 0) {
9150 322 : i3 = _luaZ_fill(i3) | 0;
9151 322 : } else {
9152 322 : i27 = i3 + 4 | 0;
9153 322 : i3 = HEAP32[i27 >> 2] | 0;
9154 322 : HEAP32[i27 >> 2] = i3 + 1;
9155 322 : i3 = HEAPU8[i3] | 0;
9156 322 : }
9157 322 : HEAP32[i2 >> 2] = i3;
9158 322 : i27 = 285;
9159 322 : STACKTOP = i1;
9160 322 : return i27 | 0;
9161 322 : } else if ((i9 | 0) == 69) {
9162 322 : i14 = HEAP32[i4 >> 2] | 0;
9163 322 : i7 = i14 + 4 | 0;
9164 322 : i15 = HEAP32[i7 >> 2] | 0;
9165 322 : i8 = i14 + 8 | 0;
9166 322 : i6 = HEAP32[i8 >> 2] | 0;
9167 322 : do {
9168 322 : if ((i15 + 1 | 0) >>> 0 > i6 >>> 0) {
9169 322 : if (i6 >>> 0 > 2147483645) {
9170 322 : _lexerror(i2, 12368, 0);
9171 322 : }
9172 322 : i16 = i6 << 1;
9173 322 : i15 = HEAP32[i2 + 52 >> 2] | 0;
9174 322 : if ((i16 | 0) == -2) {
9175 322 : _luaM_toobig(i15);
9176 322 : } else {
9177 322 : i24 = _luaM_realloc_(i15, HEAP32[i14 >> 2] | 0, i6, i16) | 0;
9178 322 : HEAP32[i14 >> 2] = i24;
9179 322 : HEAP32[i8 >> 2] = i16;
9180 322 : i23 = HEAP32[i7 >> 2] | 0;
9181 322 : break;
9182 322 : }
9183 322 : } else {
9184 322 : i23 = i15;
9185 322 : i24 = HEAP32[i14 >> 2] | 0;
9186 322 : }
9187 322 : } while (0);
9188 322 : i6 = i13 & 255;
9189 322 : HEAP32[i7 >> 2] = i23 + 1;
9190 322 : HEAP8[i24 + i23 | 0] = i6;
9191 322 : i7 = HEAP32[i5 >> 2] | 0;
9192 322 : i27 = HEAP32[i7 >> 2] | 0;
9193 322 : HEAP32[i7 >> 2] = i27 + -1;
9194 322 : if ((i27 | 0) == 0) {
9195 322 : i14 = _luaZ_fill(i7) | 0;
9196 322 : } else {
9197 322 : i27 = i7 + 4 | 0;
9198 322 : i14 = HEAP32[i27 >> 2] | 0;
9199 322 : HEAP32[i27 >> 2] = i14 + 1;
9200 322 : i14 = HEAPU8[i14] | 0;
9201 322 : }
9202 322 : HEAP32[i2 >> 2] = i14;
9203 322 : L139 : do {
9204 322 : if ((i14 | 0) != (i13 | 0)) {
9205 322 : i7 = i2 + 52 | 0;
9206 322 : L141 : while (1) {
9207 322 : L143 : do {
9208 322 : if ((i14 | 0) == 92) {
9209 322 : i8 = HEAP32[i5 >> 2] | 0;
9210 322 : i27 = HEAP32[i8 >> 2] | 0;
9211 322 : HEAP32[i8 >> 2] = i27 + -1;
9212 322 : if ((i27 | 0) == 0) {
9213 322 : i8 = _luaZ_fill(i8) | 0;
9214 322 : } else {
9215 322 : i27 = i8 + 4 | 0;
9216 322 : i8 = HEAP32[i27 >> 2] | 0;
9217 322 : HEAP32[i27 >> 2] = i8 + 1;
9218 322 : i8 = HEAPU8[i8] | 0;
9219 322 : }
9220 322 : HEAP32[i2 >> 2] = i8;
9221 322 : switch (i8 | 0) {
9222 322 : case 13:
9223 322 : case 10:
9224 322 : {
9225 322 : _inclinenumber(i2);
9226 322 : i8 = 10;
9227 322 : break;
9228 322 : }
9229 322 : case 39:
9230 322 : case 34:
9231 322 : case 92:
9232 322 : {
9233 322 : i9 = 124;
9234 322 : break;
9235 322 : }
9236 322 : case 122:
9237 322 : {
9238 322 : i8 = HEAP32[i5 >> 2] | 0;
9239 322 : i27 = HEAP32[i8 >> 2] | 0;
9240 322 : HEAP32[i8 >> 2] = i27 + -1;
9241 322 : if ((i27 | 0) == 0) {
9242 322 : i14 = _luaZ_fill(i8) | 0;
9243 322 : } else {
9244 322 : i27 = i8 + 4 | 0;
9245 322 : i14 = HEAP32[i27 >> 2] | 0;
9246 322 : HEAP32[i27 >> 2] = i14 + 1;
9247 322 : i14 = HEAPU8[i14] | 0;
9248 322 : }
9249 322 : HEAP32[i2 >> 2] = i14;
9250 322 : if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
9251 322 : break L143;
9252 322 : }
9253 322 : while (1) {
9254 322 : if ((i14 | 0) == 13 | (i14 | 0) == 10) {
9255 322 : _inclinenumber(i2);
9256 322 : i14 = HEAP32[i2 >> 2] | 0;
9257 322 : } else {
9258 322 : i8 = HEAP32[i5 >> 2] | 0;
9259 322 : i27 = HEAP32[i8 >> 2] | 0;
9260 322 : HEAP32[i8 >> 2] = i27 + -1;
9261 322 : if ((i27 | 0) == 0) {
9262 322 : i14 = _luaZ_fill(i8) | 0;
9263 322 : } else {
9264 322 : i27 = i8 + 4 | 0;
9265 322 : i14 = HEAP32[i27 >> 2] | 0;
9266 322 : HEAP32[i27 >> 2] = i14 + 1;
9267 322 : i14 = HEAPU8[i14] | 0;
9268 322 : }
9269 322 : HEAP32[i2 >> 2] = i14;
9270 322 : }
9271 322 : if ((HEAP8[i14 + 10913 | 0] & 8) == 0) {
9272 322 : break L143;
9273 322 : }
9274 322 : }
9275 322 : }
9276 322 : case 118:
9277 322 : {
9278 322 : i8 = 11;
9279 322 : i9 = 124;
9280 322 : break;
9281 322 : }
9282 322 : case 120:
9283 322 : {
9284 322 : HEAP32[i12 >> 2] = 120;
9285 322 : i14 = 1;
9286 322 : i8 = 0;
9287 322 : while (1) {
9288 322 : i9 = HEAP32[i5 >> 2] | 0;
9289 322 : i27 = HEAP32[i9 >> 2] | 0;
9290 322 : HEAP32[i9 >> 2] = i27 + -1;
9291 322 : if ((i27 | 0) == 0) {
9292 322 : i9 = _luaZ_fill(i9) | 0;
9293 322 : } else {
9294 322 : i27 = i9 + 4 | 0;
9295 322 : i9 = HEAP32[i27 >> 2] | 0;
9296 322 : HEAP32[i27 >> 2] = i9 + 1;
9297 322 : i9 = HEAPU8[i9] | 0;
9298 322 : }
9299 322 : HEAP32[i2 >> 2] = i9;
9300 322 : HEAP32[i12 + (i14 << 2) >> 2] = i9;
9301 322 : if ((HEAP8[i9 + 10913 | 0] & 16) == 0) {
9302 322 : i9 = 100;
9303 322 : break L141;
9304 322 : }
9305 322 : i8 = (_luaO_hexavalue(i9) | 0) + (i8 << 4) | 0;
9306 322 : i14 = i14 + 1 | 0;
9307 322 : if ((i14 | 0) >= 3) {
9308 322 : i9 = 124;
9309 322 : break;
9310 322 : }
9311 322 : }
9312 322 : break;
9313 322 : }
9314 322 : case -1:
9315 322 : {
9316 322 : i14 = -1;
9317 322 : break L143;
9318 322 : }
9319 322 : case 98:
9320 322 : {
9321 322 : i8 = 8;
9322 322 : i9 = 124;
9323 322 : break;
9324 322 : }
9325 322 : case 102:
9326 322 : {
9327 322 : i8 = 12;
9328 322 : i9 = 124;
9329 322 : break;
9330 322 : }
9331 322 : case 110:
9332 322 : {
9333 322 : i8 = 10;
9334 322 : i9 = 124;
9335 322 : break;
9336 322 : }
9337 322 : case 114:
9338 322 : {
9339 322 : i8 = 13;
9340 322 : i9 = 124;
9341 322 : break;
9342 322 : }
9343 322 : case 116:
9344 322 : {
9345 322 : i8 = 9;
9346 322 : i9 = 124;
9347 322 : break;
9348 322 : }
9349 322 : case 97:
9350 322 : {
9351 322 : i8 = 7;
9352 322 : i9 = 124;
9353 322 : break;
9354 322 : }
9355 322 : default:
9356 322 : {
9357 322 : if ((HEAP8[i8 + 10913 | 0] & 2) == 0) {
9358 322 : i9 = 116;
9359 322 : break L141;
9360 322 : } else {
9361 322 : i15 = i8;
9362 322 : i14 = 0;
9363 322 : i8 = 0;
9364 322 : }
9365 322 : do {
9366 322 : if ((HEAP8[i15 + 10913 | 0] & 2) == 0) {
9367 322 : break;
9368 322 : }
9369 322 : HEAP32[i12 + (i14 << 2) >> 2] = i15;
9370 322 : i8 = i15 + -48 + (i8 * 10 | 0) | 0;
9371 322 : i15 = HEAP32[i5 >> 2] | 0;
9372 322 : i27 = HEAP32[i15 >> 2] | 0;
9373 322 : HEAP32[i15 >> 2] = i27 + -1;
9374 322 : if ((i27 | 0) == 0) {
9375 322 : i15 = _luaZ_fill(i15) | 0;
9376 322 : } else {
9377 322 : i27 = i15 + 4 | 0;
9378 322 : i15 = HEAP32[i27 >> 2] | 0;
9379 322 : HEAP32[i27 >> 2] = i15 + 1;
9380 322 : i15 = HEAPU8[i15] | 0;
9381 322 : }
9382 322 : HEAP32[i2 >> 2] = i15;
9383 322 : i14 = i14 + 1 | 0;
9384 322 : } while ((i14 | 0) < 3);
9385 322 : if ((i8 | 0) > 255) {
9386 322 : i9 = 123;
9387 322 : break L141;
9388 322 : }
9389 322 : }
9390 322 : }
9391 322 : if ((i9 | 0) == 124) {
9392 322 : i9 = 0;
9393 322 : i14 = HEAP32[i5 >> 2] | 0;
9394 322 : i27 = HEAP32[i14 >> 2] | 0;
9395 322 : HEAP32[i14 >> 2] = i27 + -1;
9396 322 : if ((i27 | 0) == 0) {
9397 322 : i14 = _luaZ_fill(i14) | 0;
9398 322 : } else {
9399 322 : i27 = i14 + 4 | 0;
9400 322 : i14 = HEAP32[i27 >> 2] | 0;
9401 322 : HEAP32[i27 >> 2] = i14 + 1;
9402 322 : i14 = HEAPU8[i14] | 0;
9403 322 : }
9404 322 : HEAP32[i2 >> 2] = i14;
9405 322 : }
9406 322 : i15 = HEAP32[i4 >> 2] | 0;
9407 322 : i14 = i15 + 4 | 0;
9408 322 : i18 = HEAP32[i14 >> 2] | 0;
9409 322 : i16 = i15 + 8 | 0;
9410 322 : i17 = HEAP32[i16 >> 2] | 0;
9411 322 : if ((i18 + 1 | 0) >>> 0 > i17 >>> 0) {
9412 322 : if (i17 >>> 0 > 2147483645) {
9413 322 : i9 = 131;
9414 322 : break L141;
9415 322 : }
9416 322 : i18 = i17 << 1;
9417 322 : i19 = HEAP32[i7 >> 2] | 0;
9418 322 : if ((i18 | 0) == -2) {
9419 322 : i9 = 133;
9420 322 : break L141;
9421 322 : }
9422 322 : i27 = _luaM_realloc_(i19, HEAP32[i15 >> 2] | 0, i17, i18) | 0;
9423 322 : HEAP32[i15 >> 2] = i27;
9424 322 : HEAP32[i16 >> 2] = i18;
9425 322 : i18 = HEAP32[i14 >> 2] | 0;
9426 322 : i15 = i27;
9427 322 : } else {
9428 322 : i15 = HEAP32[i15 >> 2] | 0;
9429 322 : }
9430 322 : HEAP32[i14 >> 2] = i18 + 1;
9431 322 : HEAP8[i15 + i18 | 0] = i8;
9432 322 : i14 = HEAP32[i2 >> 2] | 0;
9433 322 : } else if ((i14 | 0) == -1) {
9434 322 : i9 = 82;
9435 322 : break L141;
9436 322 : } else if ((i14 | 0) == 13 | (i14 | 0) == 10) {
9437 322 : i9 = 83;
9438 322 : break L141;
9439 322 : } else {
9440 322 : i15 = HEAP32[i4 >> 2] | 0;
9441 322 : i8 = i15 + 4 | 0;
9442 322 : i18 = HEAP32[i8 >> 2] | 0;
9443 322 : i17 = i15 + 8 | 0;
9444 322 : i16 = HEAP32[i17 >> 2] | 0;
9445 322 : if ((i18 + 1 | 0) >>> 0 > i16 >>> 0) {
9446 322 : if (i16 >>> 0 > 2147483645) {
9447 322 : i9 = 139;
9448 322 : break L141;
9449 322 : }
9450 322 : i19 = i16 << 1;
9451 322 : i18 = HEAP32[i7 >> 2] | 0;
9452 322 : if ((i19 | 0) == -2) {
9453 322 : i9 = 141;
9454 322 : break L141;
9455 322 : }
9456 322 : i27 = _luaM_realloc_(i18, HEAP32[i15 >> 2] | 0, i16, i19) | 0;
9457 322 : HEAP32[i15 >> 2] = i27;
9458 322 : HEAP32[i17 >> 2] = i19;
9459 322 : i18 = HEAP32[i8 >> 2] | 0;
9460 322 : i15 = i27;
9461 322 : } else {
9462 322 : i15 = HEAP32[i15 >> 2] | 0;
9463 322 : }
9464 322 : HEAP32[i8 >> 2] = i18 + 1;
9465 322 : HEAP8[i15 + i18 | 0] = i14;
9466 322 : i8 = HEAP32[i5 >> 2] | 0;
9467 322 : i27 = HEAP32[i8 >> 2] | 0;
9468 322 : HEAP32[i8 >> 2] = i27 + -1;
9469 322 : if ((i27 | 0) == 0) {
9470 322 : i14 = _luaZ_fill(i8) | 0;
9471 322 : } else {
9472 322 : i27 = i8 + 4 | 0;
9473 322 : i14 = HEAP32[i27 >> 2] | 0;
9474 322 : HEAP32[i27 >> 2] = i14 + 1;
9475 322 : i14 = HEAPU8[i14] | 0;
9476 322 : }
9477 322 : HEAP32[i2 >> 2] = i14;
9478 322 : }
9479 322 : } while (0);
9480 322 : if ((i14 | 0) == (i13 | 0)) {
9481 322 : break L139;
9482 322 : }
9483 322 : }
9484 322 : if ((i9 | 0) == 82) {
9485 322 : _lexerror(i2, 12400, 286);
9486 322 : } else if ((i9 | 0) == 83) {
9487 322 : _lexerror(i2, 12400, 289);
9488 322 : } else if ((i9 | 0) == 100) {
9489 322 : _escerror(i2, i12, i14 + 1 | 0, 12480);
9490 322 : } else if ((i9 | 0) == 116) {
9491 322 : _escerror(i2, i2, 1, 12424);
9492 322 : } else if ((i9 | 0) == 123) {
9493 322 : _escerror(i2, i12, i14, 12448);
9494 322 : } else if ((i9 | 0) == 131) {
9495 322 : _lexerror(i2, 12368, 0);
9496 322 : } else if ((i9 | 0) == 133) {
9497 322 : _luaM_toobig(i19);
9498 322 : } else if ((i9 | 0) == 139) {
9499 322 : _lexerror(i2, 12368, 0);
9500 322 : } else if ((i9 | 0) == 141) {
9501 322 : _luaM_toobig(i18);
9502 322 : }
9503 322 : }
9504 322 : } while (0);
9505 322 : i7 = HEAP32[i4 >> 2] | 0;
9506 322 : i8 = i7 + 4 | 0;
9507 322 : i13 = HEAP32[i8 >> 2] | 0;
9508 322 : i12 = i7 + 8 | 0;
9509 322 : i9 = HEAP32[i12 >> 2] | 0;
9510 322 : do {
9511 322 : if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
9512 322 : if (i9 >>> 0 > 2147483645) {
9513 322 : _lexerror(i2, 12368, 0);
9514 322 : }
9515 322 : i14 = i9 << 1;
9516 322 : i13 = HEAP32[i2 + 52 >> 2] | 0;
9517 322 : if ((i14 | 0) == -2) {
9518 322 : _luaM_toobig(i13);
9519 322 : } else {
9520 322 : i11 = _luaM_realloc_(i13, HEAP32[i7 >> 2] | 0, i9, i14) | 0;
9521 322 : HEAP32[i7 >> 2] = i11;
9522 322 : HEAP32[i12 >> 2] = i14;
9523 322 : i10 = HEAP32[i8 >> 2] | 0;
9524 322 : break;
9525 322 : }
9526 322 : } else {
9527 322 : i10 = i13;
9528 322 : i11 = HEAP32[i7 >> 2] | 0;
9529 322 : }
9530 322 : } while (0);
9531 322 : HEAP32[i8 >> 2] = i10 + 1;
9532 322 : HEAP8[i11 + i10 | 0] = i6;
9533 322 : i5 = HEAP32[i5 >> 2] | 0;
9534 322 : i27 = HEAP32[i5 >> 2] | 0;
9535 322 : HEAP32[i5 >> 2] = i27 + -1;
9536 322 : if ((i27 | 0) == 0) {
9537 322 : i5 = _luaZ_fill(i5) | 0;
9538 322 : } else {
9539 322 : i27 = i5 + 4 | 0;
9540 322 : i5 = HEAP32[i27 >> 2] | 0;
9541 322 : HEAP32[i27 >> 2] = i5 + 1;
9542 322 : i5 = HEAPU8[i5] | 0;
9543 322 : }
9544 322 : HEAP32[i2 >> 2] = i5;
9545 322 : i5 = HEAP32[i4 >> 2] | 0;
9546 322 : i4 = HEAP32[i2 + 52 >> 2] | 0;
9547 322 : i5 = _luaS_newlstr(i4, (HEAP32[i5 >> 2] | 0) + 1 | 0, (HEAP32[i5 + 4 >> 2] | 0) + -2 | 0) | 0;
9548 322 : i6 = i4 + 8 | 0;
9549 322 : i7 = HEAP32[i6 >> 2] | 0;
9550 322 : HEAP32[i6 >> 2] = i7 + 16;
9551 322 : HEAP32[i7 >> 2] = i5;
9552 322 : HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 64;
9553 322 : i7 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i6 >> 2] | 0) + -16 | 0) | 0;
9554 322 : i2 = i7 + 8 | 0;
9555 322 : if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
9556 322 : _luaC_step(i4);
9557 322 : }
9558 322 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -16;
9559 322 : HEAP32[i3 >> 2] = i5;
9560 322 : i27 = 289;
9561 322 : STACKTOP = i1;
9562 322 : return i27 | 0;
9563 322 : } else if ((i9 | 0) == 161) {
9564 322 : i10 = HEAP32[i4 >> 2] | 0;
9565 322 : i9 = i10 + 4 | 0;
9566 322 : i13 = HEAP32[i9 >> 2] | 0;
9567 322 : i12 = i10 + 8 | 0;
9568 322 : i11 = HEAP32[i12 >> 2] | 0;
9569 322 : do {
9570 322 : if ((i13 + 1 | 0) >>> 0 > i11 >>> 0) {
9571 322 : if (i11 >>> 0 > 2147483645) {
9572 322 : _lexerror(i2, 12368, 0);
9573 322 : }
9574 322 : i13 = i11 << 1;
9575 322 : i20 = HEAP32[i2 + 52 >> 2] | 0;
9576 322 : if ((i13 | 0) == -2) {
9577 322 : _luaM_toobig(i20);
9578 322 : } else {
9579 322 : i25 = _luaM_realloc_(i20, HEAP32[i10 >> 2] | 0, i11, i13) | 0;
9580 322 : HEAP32[i10 >> 2] = i25;
9581 322 : HEAP32[i12 >> 2] = i13;
9582 322 : i26 = HEAP32[i9 >> 2] | 0;
9583 322 : break;
9584 322 : }
9585 322 : } else {
9586 322 : i26 = i13;
9587 322 : i25 = HEAP32[i10 >> 2] | 0;
9588 322 : }
9589 322 : } while (0);
9590 322 : HEAP32[i9 >> 2] = i26 + 1;
9591 322 : HEAP8[i25 + i26 | 0] = 46;
9592 322 : i9 = HEAP32[i5 >> 2] | 0;
9593 322 : i27 = HEAP32[i9 >> 2] | 0;
9594 322 : HEAP32[i9 >> 2] = i27 + -1;
9595 322 : if ((i27 | 0) == 0) {
9596 322 : i20 = _luaZ_fill(i9) | 0;
9597 322 : } else {
9598 322 : i27 = i9 + 4 | 0;
9599 322 : i20 = HEAP32[i27 >> 2] | 0;
9600 322 : HEAP32[i27 >> 2] = i20 + 1;
9601 322 : i20 = HEAPU8[i20] | 0;
9602 322 : }
9603 322 : HEAP32[i2 >> 2] = i20;
9604 322 : if ((i20 | 0) != 0 ? (_memchr(12304, i20, 2) | 0) != 0 : 0) {
9605 322 : i6 = HEAP32[i4 >> 2] | 0;
9606 322 : i3 = i6 + 4 | 0;
9607 322 : i9 = HEAP32[i3 >> 2] | 0;
9608 322 : i8 = i6 + 8 | 0;
9609 322 : i7 = HEAP32[i8 >> 2] | 0;
9610 322 : do {
9611 322 : if ((i9 + 1 | 0) >>> 0 > i7 >>> 0) {
9612 322 : if (i7 >>> 0 > 2147483645) {
9613 322 : _lexerror(i2, 12368, 0);
9614 322 : }
9615 322 : i9 = i7 << 1;
9616 322 : i10 = HEAP32[i2 + 52 >> 2] | 0;
9617 322 : if ((i9 | 0) == -2) {
9618 322 : _luaM_toobig(i10);
9619 322 : } else {
9620 322 : i21 = _luaM_realloc_(i10, HEAP32[i6 >> 2] | 0, i7, i9) | 0;
9621 322 : HEAP32[i6 >> 2] = i21;
9622 322 : HEAP32[i8 >> 2] = i9;
9623 322 : i22 = HEAP32[i3 >> 2] | 0;
9624 322 : break;
9625 322 : }
9626 322 : } else {
9627 322 : i22 = i9;
9628 322 : i21 = HEAP32[i6 >> 2] | 0;
9629 322 : }
9630 322 : } while (0);
9631 322 : HEAP32[i3 >> 2] = i22 + 1;
9632 322 : HEAP8[i21 + i22 | 0] = i20;
9633 322 : i3 = HEAP32[i5 >> 2] | 0;
9634 322 : i27 = HEAP32[i3 >> 2] | 0;
9635 322 : HEAP32[i3 >> 2] = i27 + -1;
9636 322 : if ((i27 | 0) == 0) {
9637 322 : i3 = _luaZ_fill(i3) | 0;
9638 322 : } else {
9639 322 : i27 = i3 + 4 | 0;
9640 322 : i3 = HEAP32[i27 >> 2] | 0;
9641 322 : HEAP32[i27 >> 2] = i3 + 1;
9642 322 : i3 = HEAPU8[i3] | 0;
9643 322 : }
9644 322 : HEAP32[i2 >> 2] = i3;
9645 322 : if ((i3 | 0) == 0) {
9646 322 : i27 = 279;
9647 322 : STACKTOP = i1;
9648 322 : return i27 | 0;
9649 322 : }
9650 322 : if ((_memchr(12304, i3, 2) | 0) == 0) {
9651 322 : i27 = 279;
9652 322 : STACKTOP = i1;
9653 322 : return i27 | 0;
9654 322 : }
9655 322 : i6 = HEAP32[i4 >> 2] | 0;
9656 322 : i7 = i6 + 4 | 0;
9657 322 : i9 = HEAP32[i7 >> 2] | 0;
9658 322 : i8 = i6 + 8 | 0;
9659 322 : i4 = HEAP32[i8 >> 2] | 0;
9660 322 : do {
9661 322 : if ((i9 + 1 | 0) >>> 0 > i4 >>> 0) {
9662 322 : if (i4 >>> 0 > 2147483645) {
9663 322 : _lexerror(i2, 12368, 0);
9664 322 : }
9665 322 : i10 = i4 << 1;
9666 322 : i9 = HEAP32[i2 + 52 >> 2] | 0;
9667 322 : if ((i10 | 0) == -2) {
9668 322 : _luaM_toobig(i9);
9669 322 : } else {
9670 322 : i18 = _luaM_realloc_(i9, HEAP32[i6 >> 2] | 0, i4, i10) | 0;
9671 322 : HEAP32[i6 >> 2] = i18;
9672 322 : HEAP32[i8 >> 2] = i10;
9673 322 : i19 = HEAP32[i7 >> 2] | 0;
9674 322 : break;
9675 322 : }
9676 322 : } else {
9677 322 : i19 = i9;
9678 322 : i18 = HEAP32[i6 >> 2] | 0;
9679 322 : }
9680 322 : } while (0);
9681 322 : HEAP32[i7 >> 2] = i19 + 1;
9682 322 : HEAP8[i18 + i19 | 0] = i3;
9683 322 : i3 = HEAP32[i5 >> 2] | 0;
9684 322 : i27 = HEAP32[i3 >> 2] | 0;
9685 322 : HEAP32[i3 >> 2] = i27 + -1;
9686 322 : if ((i27 | 0) == 0) {
9687 322 : i3 = _luaZ_fill(i3) | 0;
9688 322 : } else {
9689 322 : i27 = i3 + 4 | 0;
9690 322 : i3 = HEAP32[i27 >> 2] | 0;
9691 322 : HEAP32[i27 >> 2] = i3 + 1;
9692 322 : i3 = HEAPU8[i3] | 0;
9693 322 : }
9694 322 : HEAP32[i2 >> 2] = i3;
9695 322 : i27 = 280;
9696 322 : STACKTOP = i1;
9697 322 : return i27 | 0;
9698 322 : }
9699 322 : if ((HEAP8[i20 + 10913 | 0] & 2) == 0) {
9700 322 : i27 = 46;
9701 322 : STACKTOP = i1;
9702 322 : return i27 | 0;
9703 322 : }
9704 322 : } else if ((i9 | 0) == 283) {
9705 322 : if ((HEAP8[i13 + 10913 | 0] & 1) == 0) {
9706 322 : i3 = HEAP32[i5 >> 2] | 0;
9707 322 : i27 = HEAP32[i3 >> 2] | 0;
9708 322 : HEAP32[i3 >> 2] = i27 + -1;
9709 322 : if ((i27 | 0) == 0) {
9710 322 : i3 = _luaZ_fill(i3) | 0;
9711 322 : } else {
9712 322 : i27 = i3 + 4 | 0;
9713 322 : i3 = HEAP32[i27 >> 2] | 0;
9714 322 : HEAP32[i27 >> 2] = i3 + 1;
9715 322 : i3 = HEAPU8[i3] | 0;
9716 322 : }
9717 322 : HEAP32[i2 >> 2] = i3;
9718 322 : i27 = i13;
9719 322 : STACKTOP = i1;
9720 322 : return i27 | 0;
9721 322 : }
9722 322 : i10 = i2 + 52 | 0;
9723 322 : while (1) {
9724 322 : i11 = HEAP32[i4 >> 2] | 0;
9725 322 : i9 = i11 + 4 | 0;
9726 322 : i12 = HEAP32[i9 >> 2] | 0;
9727 322 : i19 = i11 + 8 | 0;
9728 322 : i18 = HEAP32[i19 >> 2] | 0;
9729 322 : if ((i12 + 1 | 0) >>> 0 > i18 >>> 0) {
9730 322 : if (i18 >>> 0 > 2147483645) {
9731 322 : i9 = 288;
9732 322 : break;
9733 322 : }
9734 322 : i21 = i18 << 1;
9735 322 : i12 = HEAP32[i10 >> 2] | 0;
9736 322 : if ((i21 | 0) == -2) {
9737 322 : i9 = 290;
9738 322 : break;
9739 322 : }
9740 322 : i27 = _luaM_realloc_(i12, HEAP32[i11 >> 2] | 0, i18, i21) | 0;
9741 322 : HEAP32[i11 >> 2] = i27;
9742 322 : HEAP32[i19 >> 2] = i21;
9743 322 : i12 = HEAP32[i9 >> 2] | 0;
9744 322 : i11 = i27;
9745 322 : } else {
9746 322 : i11 = HEAP32[i11 >> 2] | 0;
9747 322 : }
9748 322 : HEAP32[i9 >> 2] = i12 + 1;
9749 322 : HEAP8[i11 + i12 | 0] = i13;
9750 322 : i9 = HEAP32[i5 >> 2] | 0;
9751 322 : i27 = HEAP32[i9 >> 2] | 0;
9752 322 : HEAP32[i9 >> 2] = i27 + -1;
9753 322 : if ((i27 | 0) == 0) {
9754 322 : i13 = _luaZ_fill(i9) | 0;
9755 322 : } else {
9756 322 : i27 = i9 + 4 | 0;
9757 322 : i13 = HEAP32[i27 >> 2] | 0;
9758 322 : HEAP32[i27 >> 2] = i13 + 1;
9759 322 : i13 = HEAPU8[i13] | 0;
9760 322 : }
9761 322 : HEAP32[i2 >> 2] = i13;
9762 322 : if ((HEAP8[i13 + 10913 | 0] & 3) == 0) {
9763 322 : i9 = 296;
9764 322 : break;
9765 322 : }
9766 322 : }
9767 322 : if ((i9 | 0) == 288) {
9768 322 : _lexerror(i2, 12368, 0);
9769 322 : } else if ((i9 | 0) == 290) {
9770 322 : _luaM_toobig(i12);
9771 322 : } else if ((i9 | 0) == 296) {
9772 322 : i6 = HEAP32[i4 >> 2] | 0;
9773 322 : i4 = HEAP32[i10 >> 2] | 0;
9774 322 : i6 = _luaS_newlstr(i4, HEAP32[i6 >> 2] | 0, HEAP32[i6 + 4 >> 2] | 0) | 0;
9775 322 : i7 = i4 + 8 | 0;
9776 322 : i8 = HEAP32[i7 >> 2] | 0;
9777 322 : HEAP32[i7 >> 2] = i8 + 16;
9778 322 : HEAP32[i8 >> 2] = i6;
9779 322 : i5 = i6 + 4 | 0;
9780 322 : HEAP32[i8 + 8 >> 2] = HEAPU8[i5] | 64;
9781 322 : i8 = _luaH_set(i4, HEAP32[(HEAP32[i2 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i7 >> 2] | 0) + -16 | 0) | 0;
9782 322 : i2 = i8 + 8 | 0;
9783 322 : if ((HEAP32[i2 >> 2] | 0) == 0 ? (HEAP32[i8 >> 2] = 1, HEAP32[i2 >> 2] = 1, (HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
9784 322 : _luaC_step(i4);
9785 322 : }
9786 322 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
9787 322 : HEAP32[i3 >> 2] = i6;
9788 322 : if ((HEAP8[i5] | 0) != 4) {
9789 322 : i27 = 288;
9790 322 : STACKTOP = i1;
9791 322 : return i27 | 0;
9792 322 : }
9793 322 : i2 = HEAP8[i6 + 6 | 0] | 0;
9794 322 : if (i2 << 24 >> 24 == 0) {
9795 322 : i27 = 288;
9796 322 : STACKTOP = i1;
9797 322 : return i27 | 0;
9798 322 : }
9799 322 : i27 = i2 & 255 | 256;
9800 322 : STACKTOP = i1;
9801 322 : return i27 | 0;
9802 322 : }
9803 322 : } else if ((i9 | 0) == 306) {
9804 322 : STACKTOP = i1;
9805 322 : return i2 | 0;
9806 322 : }
9807 322 : i9 = HEAP32[i4 >> 2] | 0;
9808 322 : i12 = i9 + 4 | 0;
9809 322 : i13 = HEAP32[i12 >> 2] | 0;
9810 322 : i11 = i9 + 8 | 0;
9811 322 : i10 = HEAP32[i11 >> 2] | 0;
9812 322 : do {
9813 322 : if ((i13 + 1 | 0) >>> 0 > i10 >>> 0) {
9814 322 : if (i10 >>> 0 > 2147483645) {
9815 322 : _lexerror(i2, 12368, 0);
9816 322 : }
9817 322 : i18 = i10 << 1;
9818 322 : i13 = HEAP32[i2 + 52 >> 2] | 0;
9819 322 : if ((i18 | 0) == -2) {
9820 322 : _luaM_toobig(i13);
9821 322 : } else {
9822 322 : i16 = _luaM_realloc_(i13, HEAP32[i9 >> 2] | 0, i10, i18) | 0;
9823 322 : HEAP32[i9 >> 2] = i16;
9824 322 : HEAP32[i11 >> 2] = i18;
9825 322 : i17 = HEAP32[i12 >> 2] | 0;
9826 322 : break;
9827 322 : }
9828 322 : } else {
9829 322 : i17 = i13;
9830 322 : i16 = HEAP32[i9 >> 2] | 0;
9831 322 : }
9832 322 : } while (0);
9833 322 : HEAP32[i12 >> 2] = i17 + 1;
9834 322 : HEAP8[i16 + i17 | 0] = i20;
9835 322 : i9 = HEAP32[i5 >> 2] | 0;
9836 322 : i27 = HEAP32[i9 >> 2] | 0;
9837 322 : HEAP32[i9 >> 2] = i27 + -1;
9838 322 : if ((i27 | 0) == 0) {
9839 322 : i9 = _luaZ_fill(i9) | 0;
9840 322 : } else {
9841 322 : i27 = i9 + 4 | 0;
9842 322 : i9 = HEAP32[i27 >> 2] | 0;
9843 322 : HEAP32[i27 >> 2] = i9 + 1;
9844 322 : i9 = HEAPU8[i9] | 0;
9845 322 : }
9846 322 : HEAP32[i2 >> 2] = i9;
9847 322 : if ((i20 | 0) == 48) {
9848 322 : if ((i9 | 0) != 0) {
9849 322 : if ((_memchr(12320, i9, 3) | 0) == 0) {
9850 322 : i15 = i9;
9851 322 : i9 = 12312;
9852 322 : } else {
9853 322 : i10 = HEAP32[i4 >> 2] | 0;
9854 322 : i13 = i10 + 4 | 0;
9855 322 : i16 = HEAP32[i13 >> 2] | 0;
9856 322 : i11 = i10 + 8 | 0;
9857 322 : i12 = HEAP32[i11 >> 2] | 0;
9858 322 : do {
9859 322 : if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
9860 322 : if (i12 >>> 0 > 2147483645) {
9861 322 : _lexerror(i2, 12368, 0);
9862 322 : }
9863 322 : i17 = i12 << 1;
9864 322 : i16 = HEAP32[i2 + 52 >> 2] | 0;
9865 322 : if ((i17 | 0) == -2) {
9866 322 : _luaM_toobig(i16);
9867 322 : } else {
9868 322 : i15 = _luaM_realloc_(i16, HEAP32[i10 >> 2] | 0, i12, i17) | 0;
9869 322 : HEAP32[i10 >> 2] = i15;
9870 322 : HEAP32[i11 >> 2] = i17;
9871 322 : i14 = HEAP32[i13 >> 2] | 0;
9872 322 : break;
9873 322 : }
9874 322 : } else {
9875 322 : i14 = i16;
9876 322 : i15 = HEAP32[i10 >> 2] | 0;
9877 322 : }
9878 322 : } while (0);
9879 322 : HEAP32[i13 >> 2] = i14 + 1;
9880 322 : HEAP8[i15 + i14 | 0] = i9;
9881 322 : i9 = HEAP32[i5 >> 2] | 0;
9882 322 : i27 = HEAP32[i9 >> 2] | 0;
9883 322 : HEAP32[i9 >> 2] = i27 + -1;
9884 322 : if ((i27 | 0) == 0) {
9885 322 : i15 = _luaZ_fill(i9) | 0;
9886 322 : } else {
9887 322 : i27 = i9 + 4 | 0;
9888 322 : i15 = HEAP32[i27 >> 2] | 0;
9889 322 : HEAP32[i27 >> 2] = i15 + 1;
9890 322 : i15 = HEAPU8[i15] | 0;
9891 322 : }
9892 322 : HEAP32[i2 >> 2] = i15;
9893 322 : i9 = 12328;
9894 322 : }
9895 322 : } else {
9896 322 : i15 = 0;
9897 322 : i9 = 12312;
9898 322 : }
9899 322 : } else {
9900 322 : i15 = i9;
9901 322 : i9 = 12312;
9902 322 : }
9903 322 : i10 = i2 + 52 | 0;
9904 322 : while (1) {
9905 322 : if ((i15 | 0) != 0) {
9906 322 : if ((_memchr(i9, i15, 3) | 0) != 0) {
9907 322 : i12 = HEAP32[i4 >> 2] | 0;
9908 322 : i11 = i12 + 4 | 0;
9909 322 : i16 = HEAP32[i11 >> 2] | 0;
9910 322 : i14 = i12 + 8 | 0;
9911 322 : i13 = HEAP32[i14 >> 2] | 0;
9912 322 : if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
9913 322 : if (i13 >>> 0 > 2147483645) {
9914 322 : i9 = 227;
9915 322 : break;
9916 322 : }
9917 322 : i17 = i13 << 1;
9918 322 : i16 = HEAP32[i10 >> 2] | 0;
9919 322 : if ((i17 | 0) == -2) {
9920 322 : i9 = 229;
9921 322 : break;
9922 322 : }
9923 322 : i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
9924 322 : HEAP32[i12 >> 2] = i27;
9925 322 : HEAP32[i14 >> 2] = i17;
9926 322 : i16 = HEAP32[i11 >> 2] | 0;
9927 322 : i12 = i27;
9928 322 : } else {
9929 322 : i12 = HEAP32[i12 >> 2] | 0;
9930 322 : }
9931 322 : HEAP32[i11 >> 2] = i16 + 1;
9932 322 : HEAP8[i12 + i16 | 0] = i15;
9933 322 : i11 = HEAP32[i5 >> 2] | 0;
9934 322 : i27 = HEAP32[i11 >> 2] | 0;
9935 322 : HEAP32[i11 >> 2] = i27 + -1;
9936 322 : if ((i27 | 0) == 0) {
9937 322 : i15 = _luaZ_fill(i11) | 0;
9938 322 : } else {
9939 322 : i27 = i11 + 4 | 0;
9940 322 : i15 = HEAP32[i27 >> 2] | 0;
9941 322 : HEAP32[i27 >> 2] = i15 + 1;
9942 322 : i15 = HEAPU8[i15] | 0;
9943 322 : }
9944 322 : HEAP32[i2 >> 2] = i15;
9945 322 : if ((i15 | 0) != 0) {
9946 322 : if ((_memchr(12336, i15, 3) | 0) != 0) {
9947 322 : i12 = HEAP32[i4 >> 2] | 0;
9948 322 : i11 = i12 + 4 | 0;
9949 322 : i16 = HEAP32[i11 >> 2] | 0;
9950 322 : i14 = i12 + 8 | 0;
9951 322 : i13 = HEAP32[i14 >> 2] | 0;
9952 322 : if ((i16 + 1 | 0) >>> 0 > i13 >>> 0) {
9953 322 : if (i13 >>> 0 > 2147483645) {
9954 322 : i9 = 239;
9955 322 : break;
9956 322 : }
9957 322 : i17 = i13 << 1;
9958 322 : i16 = HEAP32[i10 >> 2] | 0;
9959 322 : if ((i17 | 0) == -2) {
9960 322 : i9 = 241;
9961 322 : break;
9962 322 : }
9963 322 : i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
9964 322 : HEAP32[i12 >> 2] = i27;
9965 322 : HEAP32[i14 >> 2] = i17;
9966 322 : i16 = HEAP32[i11 >> 2] | 0;
9967 322 : i12 = i27;
9968 322 : } else {
9969 322 : i12 = HEAP32[i12 >> 2] | 0;
9970 322 : }
9971 322 : HEAP32[i11 >> 2] = i16 + 1;
9972 322 : HEAP8[i12 + i16 | 0] = i15;
9973 322 : i11 = HEAP32[i5 >> 2] | 0;
9974 322 : i27 = HEAP32[i11 >> 2] | 0;
9975 322 : HEAP32[i11 >> 2] = i27 + -1;
9976 322 : if ((i27 | 0) == 0) {
9977 322 : i15 = _luaZ_fill(i11) | 0;
9978 322 : } else {
9979 322 : i27 = i11 + 4 | 0;
9980 322 : i15 = HEAP32[i27 >> 2] | 0;
9981 322 : HEAP32[i27 >> 2] = i15 + 1;
9982 322 : i15 = HEAPU8[i15] | 0;
9983 322 : }
9984 322 : HEAP32[i2 >> 2] = i15;
9985 322 : }
9986 322 : } else {
9987 322 : i15 = 0;
9988 322 : }
9989 322 : }
9990 322 : } else {
9991 322 : i15 = 0;
9992 322 : }
9993 322 : i12 = HEAP32[i4 >> 2] | 0;
9994 322 : i11 = i12 + 4 | 0;
9995 322 : i17 = HEAP32[i11 >> 2] | 0;
9996 322 : i14 = i12 + 8 | 0;
9997 322 : i13 = HEAP32[i14 >> 2] | 0;
9998 322 : i16 = (i17 + 1 | 0) >>> 0 > i13 >>> 0;
9999 322 : if (!((HEAP8[i15 + 10913 | 0] & 16) != 0 | (i15 | 0) == 46)) {
10000 322 : i9 = 259;
10001 322 : break;
10002 322 : }
10003 322 : if (i16) {
10004 322 : if (i13 >>> 0 > 2147483645) {
10005 322 : i9 = 251;
10006 322 : break;
10007 322 : }
10008 322 : i17 = i13 << 1;
10009 322 : i16 = HEAP32[i10 >> 2] | 0;
10010 322 : if ((i17 | 0) == -2) {
10011 322 : i9 = 253;
10012 322 : break;
10013 322 : }
10014 322 : i27 = _luaM_realloc_(i16, HEAP32[i12 >> 2] | 0, i13, i17) | 0;
10015 322 : HEAP32[i12 >> 2] = i27;
10016 322 : HEAP32[i14 >> 2] = i17;
10017 322 : i17 = HEAP32[i11 >> 2] | 0;
10018 322 : i12 = i27;
10019 322 : } else {
10020 322 : i12 = HEAP32[i12 >> 2] | 0;
10021 322 : }
10022 322 : HEAP32[i11 >> 2] = i17 + 1;
10023 322 : HEAP8[i12 + i17 | 0] = i15;
10024 322 : i11 = HEAP32[i5 >> 2] | 0;
10025 322 : i27 = HEAP32[i11 >> 2] | 0;
10026 322 : HEAP32[i11 >> 2] = i27 + -1;
10027 322 : if ((i27 | 0) == 0) {
10028 322 : i15 = _luaZ_fill(i11) | 0;
10029 322 : } else {
10030 322 : i27 = i11 + 4 | 0;
10031 322 : i15 = HEAP32[i27 >> 2] | 0;
10032 322 : HEAP32[i27 >> 2] = i15 + 1;
10033 322 : i15 = HEAPU8[i15] | 0;
10034 322 : }
10035 322 : HEAP32[i2 >> 2] = i15;
10036 322 : }
10037 322 : if ((i9 | 0) == 227) {
10038 322 : _lexerror(i2, 12368, 0);
10039 322 : } else if ((i9 | 0) == 229) {
10040 322 : _luaM_toobig(i16);
10041 322 : } else if ((i9 | 0) == 239) {
10042 322 : _lexerror(i2, 12368, 0);
10043 322 : } else if ((i9 | 0) == 241) {
10044 322 : _luaM_toobig(i16);
10045 322 : } else if ((i9 | 0) == 251) {
10046 322 : _lexerror(i2, 12368, 0);
10047 322 : } else if ((i9 | 0) == 253) {
10048 322 : _luaM_toobig(i16);
10049 322 : } else if ((i9 | 0) == 259) {
10050 322 : do {
10051 322 : if (i16) {
10052 322 : if (i13 >>> 0 > 2147483645) {
10053 322 : _lexerror(i2, 12368, 0);
10054 322 : }
10055 322 : i5 = i13 << 1;
10056 322 : i9 = HEAP32[i10 >> 2] | 0;
10057 322 : if ((i5 | 0) == -2) {
10058 322 : _luaM_toobig(i9);
10059 322 : } else {
10060 322 : i7 = _luaM_realloc_(i9, HEAP32[i12 >> 2] | 0, i13, i5) | 0;
10061 322 : HEAP32[i12 >> 2] = i7;
10062 322 : HEAP32[i14 >> 2] = i5;
10063 322 : i8 = HEAP32[i11 >> 2] | 0;
10064 322 : break;
10065 322 : }
10066 322 : } else {
10067 322 : i8 = i17;
10068 322 : i7 = HEAP32[i12 >> 2] | 0;
10069 322 : }
10070 322 : } while (0);
10071 322 : HEAP32[i11 >> 2] = i8 + 1;
10072 322 : HEAP8[i7 + i8 | 0] = 0;
10073 322 : i5 = i2 + 76 | 0;
10074 322 : i7 = HEAP8[i5] | 0;
10075 322 : i10 = HEAP32[i4 >> 2] | 0;
10076 322 : i8 = HEAP32[i10 >> 2] | 0;
10077 322 : i10 = HEAP32[i10 + 4 >> 2] | 0;
10078 322 : if ((i10 | 0) == 0) {
10079 322 : i7 = -1;
10080 322 : } else {
10081 322 : do {
10082 322 : i10 = i10 + -1 | 0;
10083 322 : i9 = i8 + i10 | 0;
10084 322 : if ((HEAP8[i9] | 0) == 46) {
10085 322 : HEAP8[i9] = i7;
10086 322 : }
10087 322 : } while ((i10 | 0) != 0);
10088 322 : i7 = HEAP32[i4 >> 2] | 0;
10089 322 : i8 = HEAP32[i7 >> 2] | 0;
10090 322 : i7 = (HEAP32[i7 + 4 >> 2] | 0) + -1 | 0;
10091 322 : }
10092 322 : if ((_luaO_str2d(i8, i7, i3) | 0) != 0) {
10093 322 : i27 = 287;
10094 322 : STACKTOP = i1;
10095 322 : return i27 | 0;
10096 322 : }
10097 322 : i9 = HEAP8[i5] | 0;
10098 322 : i8 = HEAP8[HEAP32[(_localeconv() | 0) >> 2] | 0] | 0;
10099 322 : HEAP8[i5] = i8;
10100 322 : i10 = HEAP32[i4 >> 2] | 0;
10101 322 : i7 = HEAP32[i10 >> 2] | 0;
10102 322 : i10 = HEAP32[i10 + 4 >> 2] | 0;
10103 322 : if ((i10 | 0) == 0) {
10104 322 : i8 = -1;
10105 322 : } else {
10106 322 : do {
10107 322 : i10 = i10 + -1 | 0;
10108 322 : i11 = i7 + i10 | 0;
10109 322 : if ((HEAP8[i11] | 0) == i9 << 24 >> 24) {
10110 322 : HEAP8[i11] = i8;
10111 322 : }
10112 322 : } while ((i10 | 0) != 0);
10113 322 : i8 = HEAP32[i4 >> 2] | 0;
10114 322 : i7 = HEAP32[i8 >> 2] | 0;
10115 322 : i8 = (HEAP32[i8 + 4 >> 2] | 0) + -1 | 0;
10116 322 : }
10117 322 : if ((_luaO_str2d(i7, i8, i3) | 0) != 0) {
10118 322 : i27 = 287;
10119 322 : STACKTOP = i1;
10120 322 : return i27 | 0;
10121 322 : }
10122 322 : i1 = HEAP8[i5] | 0;
10123 322 : i4 = HEAP32[i4 >> 2] | 0;
10124 322 : i3 = HEAP32[i4 >> 2] | 0;
10125 322 : i4 = HEAP32[i4 + 4 >> 2] | 0;
10126 322 : if ((i4 | 0) == 0) {
10127 322 : _lexerror(i2, 12344, 287);
10128 322 : } else {
10129 322 : i6 = i4;
10130 322 : }
10131 322 : do {
10132 322 : i6 = i6 + -1 | 0;
10133 322 : i4 = i3 + i6 | 0;
10134 322 : if ((HEAP8[i4] | 0) == i1 << 24 >> 24) {
10135 322 : HEAP8[i4] = 46;
10136 322 : }
10137 322 : } while ((i6 | 0) != 0);
10138 322 : _lexerror(i2, 12344, 287);
10139 322 : }
10140 322 : return 0;
10141 322 : }
10142 1 : function _luaV_execute(i1) {
10143 1 : i1 = i1 | 0;
10144 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0, d37 = 0.0, d38 = 0.0, d39 = 0.0;
10145 1 : i12 = STACKTOP;
10146 1 : STACKTOP = STACKTOP + 32 | 0;
10147 1 : i13 = i12 + 24 | 0;
10148 1 : i10 = i12 + 16 | 0;
10149 1 : i9 = i12 + 8 | 0;
10150 1 : i8 = i12;
10151 1 : i3 = i1 + 16 | 0;
10152 1 : i4 = i1 + 40 | 0;
10153 1 : i6 = i1 + 12 | 0;
10154 1 : i5 = i1 + 8 | 0;
10155 1 : i11 = i1 + 24 | 0;
10156 1 : i17 = i1 + 48 | 0;
10157 1 : i2 = i1 + 20 | 0;
10158 1 : i16 = i1 + 6 | 0;
10159 1 : i7 = i1 + 44 | 0;
10160 1 : i19 = HEAP32[i3 >> 2] | 0;
10161 1 : L1 : while (1) {
10162 1 : i22 = HEAP32[HEAP32[i19 >> 2] >> 2] | 0;
10163 1 : i18 = i22 + 12 | 0;
10164 1 : i23 = HEAP32[(HEAP32[i18 >> 2] | 0) + 8 >> 2] | 0;
10165 1 : i20 = i19 + 24 | 0;
10166 1 : i21 = i19 + 28 | 0;
10167 1 : i22 = i22 + 16 | 0;
10168 1 : i24 = i19 + 4 | 0;
10169 1 : i25 = HEAP32[i20 >> 2] | 0;
10170 1 : L3 : while (1) {
10171 1 : i28 = HEAP32[i21 >> 2] | 0;
10172 1 : HEAP32[i21 >> 2] = i28 + 4;
10173 1 : i28 = HEAP32[i28 >> 2] | 0;
10174 1 : i27 = HEAP8[i4] | 0;
10175 1 : do {
10176 1 : if (!((i27 & 12) == 0)) {
10177 1 : i26 = (HEAP32[i17 >> 2] | 0) + -1 | 0;
10178 1 : HEAP32[i17 >> 2] = i26;
10179 1 : i26 = (i26 | 0) == 0;
10180 1 : if (!i26 ? (i27 & 4) == 0 : 0) {
10181 1 : break;
10182 1 : }
10183 1 : i25 = HEAP32[i3 >> 2] | 0;
10184 1 : i29 = i27 & 255;
10185 1 : if ((i29 & 8 | 0) == 0 | i26 ^ 1) {
10186 1 : i27 = 0;
10187 1 : } else {
10188 1 : HEAP32[i17 >> 2] = HEAP32[i7 >> 2];
10189 1 : i27 = 1;
10190 1 : }
10191 1 : i26 = i25 + 18 | 0;
10192 1 : i30 = HEAPU8[i26] | 0;
10193 1 : if ((i30 & 128 | 0) == 0) {
10194 1 : if (i27) {
10195 1 : _luaD_hook(i1, 3, -1);
10196 1 : }
10197 1 : do {
10198 1 : if ((i29 & 4 | 0) == 0) {
10199 1 : i29 = i25 + 28 | 0;
10200 1 : } else {
10201 1 : i34 = HEAP32[(HEAP32[HEAP32[i25 >> 2] >> 2] | 0) + 12 >> 2] | 0;
10202 1 : i29 = i25 + 28 | 0;
10203 1 : i32 = HEAP32[i29 >> 2] | 0;
10204 1 : i35 = HEAP32[i34 + 12 >> 2] | 0;
10205 1 : i33 = (i32 - i35 >> 2) + -1 | 0;
10206 1 : i34 = HEAP32[i34 + 20 >> 2] | 0;
10207 1 : i31 = (i34 | 0) == 0;
10208 1 : if (i31) {
10209 1 : i30 = 0;
10210 1 : } else {
10211 1 : i30 = HEAP32[i34 + (i33 << 2) >> 2] | 0;
10212 1 : }
10213 1 : if ((i33 | 0) != 0 ? (i14 = HEAP32[i2 >> 2] | 0, i32 >>> 0 > i14 >>> 0) : 0) {
10214 1 : if (i31) {
10215 1 : i31 = 0;
10216 1 : } else {
10217 1 : i31 = HEAP32[i34 + ((i14 - i35 >> 2) + -1 << 2) >> 2] | 0;
10218 1 : }
10219 1 : if ((i30 | 0) == (i31 | 0)) {
10220 1 : break;
10221 1 : }
10222 1 : }
10223 1 : _luaD_hook(i1, 2, i30);
10224 1 : }
10225 1 : } while (0);
10226 1 : HEAP32[i2 >> 2] = HEAP32[i29 >> 2];
10227 1 : if ((HEAP8[i16] | 0) == 1) {
10228 1 : i15 = 23;
10229 1 : break L1;
10230 1 : }
10231 1 : } else {
10232 1 : HEAP8[i26] = i30 & 127;
10233 1 : }
10234 1 : i25 = HEAP32[i20 >> 2] | 0;
10235 1 : }
10236 1 : } while (0);
10237 1 : i26 = i28 >>> 6 & 255;
10238 1 : i27 = i25 + (i26 << 4) | 0;
10239 1 : switch (i28 & 63 | 0) {
10240 1 : case 9:
10241 1 : {
10242 1 : i28 = HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0;
10243 1 : i35 = HEAP32[i28 + 8 >> 2] | 0;
10244 1 : i33 = i27;
10245 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10246 1 : i36 = i35;
10247 1 : HEAP32[i36 >> 2] = HEAP32[i33 >> 2];
10248 1 : HEAP32[i36 + 4 >> 2] = i34;
10249 1 : i36 = i25 + (i26 << 4) + 8 | 0;
10250 1 : HEAP32[i35 + 8 >> 2] = HEAP32[i36 >> 2];
10251 1 : if ((HEAP32[i36 >> 2] & 64 | 0) == 0) {
10252 1 : continue L3;
10253 1 : }
10254 1 : i26 = HEAP32[i27 >> 2] | 0;
10255 1 : if ((HEAP8[i26 + 5 | 0] & 3) == 0) {
10256 1 : continue L3;
10257 1 : }
10258 1 : if ((HEAP8[i28 + 5 | 0] & 4) == 0) {
10259 1 : continue L3;
10260 1 : }
10261 1 : _luaC_barrier_(i1, i28, i26);
10262 1 : continue L3;
10263 1 : }
10264 1 : case 10:
10265 1 : {
10266 1 : i26 = i28 >>> 23;
10267 1 : if ((i26 & 256 | 0) == 0) {
10268 1 : i26 = i25 + (i26 << 4) | 0;
10269 1 : } else {
10270 1 : i26 = i23 + ((i26 & 255) << 4) | 0;
10271 1 : }
10272 1 : i28 = i28 >>> 14;
10273 1 : if ((i28 & 256 | 0) == 0) {
10274 1 : i25 = i25 + ((i28 & 511) << 4) | 0;
10275 1 : } else {
10276 1 : i25 = i23 + ((i28 & 255) << 4) | 0;
10277 1 : }
10278 1 : _luaV_settable(i1, i27, i26, i25);
10279 1 : i25 = HEAP32[i20 >> 2] | 0;
10280 1 : continue L3;
10281 1 : }
10282 1 : case 17:
10283 1 : {
10284 1 : i29 = i28 >>> 23;
10285 1 : if ((i29 & 256 | 0) == 0) {
10286 1 : i29 = i25 + (i29 << 4) | 0;
10287 1 : } else {
10288 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10289 1 : }
10290 1 : i28 = i28 >>> 14;
10291 1 : if ((i28 & 256 | 0) == 0) {
10292 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10293 1 : } else {
10294 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10295 1 : }
10296 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10297 1 : d37 = +HEAPF64[i29 >> 3];
10298 1 : d38 = +HEAPF64[i28 >> 3];
10299 1 : HEAPF64[i27 >> 3] = d37 - d38 * +Math_floor(+(d37 / d38));
10300 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10301 1 : continue L3;
10302 1 : }
10303 1 : _luaV_arith(i1, i27, i29, i28, 10);
10304 1 : i25 = HEAP32[i20 >> 2] | 0;
10305 1 : continue L3;
10306 1 : }
10307 1 : case 23:
10308 1 : {
10309 1 : if ((i26 | 0) != 0) {
10310 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i26 + -1 << 4) | 0);
10311 1 : }
10312 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
10313 1 : continue L3;
10314 1 : }
10315 1 : case 24:
10316 1 : {
10317 1 : i27 = i28 >>> 23;
10318 1 : if ((i27 & 256 | 0) == 0) {
10319 1 : i27 = i25 + (i27 << 4) | 0;
10320 1 : } else {
10321 1 : i27 = i23 + ((i27 & 255) << 4) | 0;
10322 1 : }
10323 1 : i28 = i28 >>> 14;
10324 1 : if ((i28 & 256 | 0) == 0) {
10325 1 : i25 = i25 + ((i28 & 511) << 4) | 0;
10326 1 : } else {
10327 1 : i25 = i23 + ((i28 & 255) << 4) | 0;
10328 1 : }
10329 1 : if ((HEAP32[i27 + 8 >> 2] | 0) == (HEAP32[i25 + 8 >> 2] | 0)) {
10330 1 : i27 = (_luaV_equalobj_(i1, i27, i25) | 0) != 0;
10331 1 : } else {
10332 1 : i27 = 0;
10333 1 : }
10334 1 : i25 = HEAP32[i21 >> 2] | 0;
10335 1 : if ((i27 & 1 | 0) == (i26 | 0)) {
10336 1 : i26 = HEAP32[i25 >> 2] | 0;
10337 1 : i27 = i26 >>> 6 & 255;
10338 1 : if ((i27 | 0) != 0) {
10339 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
10340 1 : i25 = HEAP32[i21 >> 2] | 0;
10341 1 : }
10342 1 : i25 = i25 + ((i26 >>> 14) + -131070 << 2) | 0;
10343 1 : } else {
10344 1 : i25 = i25 + 4 | 0;
10345 1 : }
10346 1 : HEAP32[i21 >> 2] = i25;
10347 1 : i25 = HEAP32[i20 >> 2] | 0;
10348 1 : continue L3;
10349 1 : }
10350 1 : case 18:
10351 1 : {
10352 1 : i29 = i28 >>> 23;
10353 1 : if ((i29 & 256 | 0) == 0) {
10354 1 : i29 = i25 + (i29 << 4) | 0;
10355 1 : } else {
10356 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10357 1 : }
10358 1 : i28 = i28 >>> 14;
10359 1 : if ((i28 & 256 | 0) == 0) {
10360 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10361 1 : } else {
10362 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10363 1 : }
10364 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10365 1 : HEAPF64[i27 >> 3] = +Math_pow(+(+HEAPF64[i29 >> 3]), +(+HEAPF64[i28 >> 3]));
10366 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10367 1 : continue L3;
10368 1 : }
10369 1 : _luaV_arith(i1, i27, i29, i28, 11);
10370 1 : i25 = HEAP32[i20 >> 2] | 0;
10371 1 : continue L3;
10372 1 : }
10373 1 : case 1:
10374 1 : {
10375 1 : i36 = i28 >>> 14;
10376 1 : i33 = i23 + (i36 << 4) | 0;
10377 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10378 1 : i35 = i27;
10379 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
10380 1 : HEAP32[i35 + 4 >> 2] = i34;
10381 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
10382 1 : continue L3;
10383 1 : }
10384 1 : case 0:
10385 1 : {
10386 1 : i36 = i28 >>> 23;
10387 1 : i33 = i25 + (i36 << 4) | 0;
10388 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10389 1 : i35 = i27;
10390 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
10391 1 : HEAP32[i35 + 4 >> 2] = i34;
10392 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
10393 1 : continue L3;
10394 1 : }
10395 1 : case 2:
10396 1 : {
10397 1 : i36 = HEAP32[i21 >> 2] | 0;
10398 1 : HEAP32[i21 >> 2] = i36 + 4;
10399 1 : i36 = (HEAP32[i36 >> 2] | 0) >>> 6;
10400 1 : i33 = i23 + (i36 << 4) | 0;
10401 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10402 1 : i35 = i27;
10403 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
10404 1 : HEAP32[i35 + 4 >> 2] = i34;
10405 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i23 + (i36 << 4) + 8 >> 2];
10406 1 : continue L3;
10407 1 : }
10408 1 : case 5:
10409 1 : {
10410 1 : i36 = HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0;
10411 1 : i33 = i36;
10412 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10413 1 : i35 = i27;
10414 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
10415 1 : HEAP32[i35 + 4 >> 2] = i34;
10416 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i36 + 8 >> 2];
10417 1 : continue L3;
10418 1 : }
10419 1 : case 3:
10420 1 : {
10421 1 : HEAP32[i27 >> 2] = i28 >>> 23;
10422 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
10423 1 : if ((i28 & 8372224 | 0) == 0) {
10424 1 : continue L3;
10425 1 : }
10426 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
10427 1 : continue L3;
10428 1 : }
10429 1 : case 7:
10430 1 : {
10431 1 : i26 = i28 >>> 14;
10432 1 : if ((i26 & 256 | 0) == 0) {
10433 1 : i26 = i25 + ((i26 & 511) << 4) | 0;
10434 1 : } else {
10435 1 : i26 = i23 + ((i26 & 255) << 4) | 0;
10436 1 : }
10437 1 : _luaV_gettable(i1, i25 + (i28 >>> 23 << 4) | 0, i26, i27);
10438 1 : i25 = HEAP32[i20 >> 2] | 0;
10439 1 : continue L3;
10440 1 : }
10441 1 : case 12:
10442 1 : {
10443 1 : i36 = i28 >>> 23;
10444 1 : i29 = i25 + (i36 << 4) | 0;
10445 1 : i26 = i26 + 1 | 0;
10446 1 : i33 = i29;
10447 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10448 1 : i35 = i25 + (i26 << 4) | 0;
10449 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
10450 1 : HEAP32[i35 + 4 >> 2] = i34;
10451 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
10452 1 : i26 = i28 >>> 14;
10453 1 : if ((i26 & 256 | 0) == 0) {
10454 1 : i25 = i25 + ((i26 & 511) << 4) | 0;
10455 1 : } else {
10456 1 : i25 = i23 + ((i26 & 255) << 4) | 0;
10457 1 : }
10458 1 : _luaV_gettable(i1, i29, i25, i27);
10459 1 : i25 = HEAP32[i20 >> 2] | 0;
10460 1 : continue L3;
10461 1 : }
10462 1 : case 13:
10463 1 : {
10464 1 : i29 = i28 >>> 23;
10465 1 : if ((i29 & 256 | 0) == 0) {
10466 1 : i29 = i25 + (i29 << 4) | 0;
10467 1 : } else {
10468 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10469 1 : }
10470 1 : i28 = i28 >>> 14;
10471 1 : if ((i28 & 256 | 0) == 0) {
10472 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10473 1 : } else {
10474 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10475 1 : }
10476 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10477 1 : HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] + +HEAPF64[i28 >> 3];
10478 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10479 1 : continue L3;
10480 1 : }
10481 1 : _luaV_arith(i1, i27, i29, i28, 6);
10482 1 : i25 = HEAP32[i20 >> 2] | 0;
10483 1 : continue L3;
10484 1 : }
10485 1 : case 14:
10486 1 : {
10487 1 : i29 = i28 >>> 23;
10488 1 : if ((i29 & 256 | 0) == 0) {
10489 1 : i29 = i25 + (i29 << 4) | 0;
10490 1 : } else {
10491 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10492 1 : }
10493 1 : i28 = i28 >>> 14;
10494 1 : if ((i28 & 256 | 0) == 0) {
10495 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10496 1 : } else {
10497 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10498 1 : }
10499 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10500 1 : HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] - +HEAPF64[i28 >> 3];
10501 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10502 1 : continue L3;
10503 1 : }
10504 1 : _luaV_arith(i1, i27, i29, i28, 7);
10505 1 : i25 = HEAP32[i20 >> 2] | 0;
10506 1 : continue L3;
10507 1 : }
10508 1 : case 6:
10509 1 : {
10510 1 : i26 = i28 >>> 14;
10511 1 : if ((i26 & 256 | 0) == 0) {
10512 1 : i25 = i25 + ((i26 & 511) << 4) | 0;
10513 1 : } else {
10514 1 : i25 = i23 + ((i26 & 255) << 4) | 0;
10515 1 : }
10516 1 : _luaV_gettable(i1, HEAP32[(HEAP32[i22 + (i28 >>> 23 << 2) >> 2] | 0) + 8 >> 2] | 0, i25, i27);
10517 1 : i25 = HEAP32[i20 >> 2] | 0;
10518 1 : continue L3;
10519 1 : }
10520 1 : case 4:
10521 1 : {
10522 1 : i26 = i28 >>> 23;
10523 1 : while (1) {
10524 1 : HEAP32[i27 + 8 >> 2] = 0;
10525 1 : if ((i26 | 0) == 0) {
10526 1 : continue L3;
10527 1 : } else {
10528 1 : i26 = i26 + -1 | 0;
10529 1 : i27 = i27 + 16 | 0;
10530 1 : }
10531 1 : }
10532 1 : }
10533 1 : case 8:
10534 1 : {
10535 1 : i27 = i28 >>> 23;
10536 1 : if ((i27 & 256 | 0) == 0) {
10537 1 : i27 = i25 + (i27 << 4) | 0;
10538 1 : } else {
10539 1 : i27 = i23 + ((i27 & 255) << 4) | 0;
10540 1 : }
10541 1 : i28 = i28 >>> 14;
10542 1 : if ((i28 & 256 | 0) == 0) {
10543 1 : i25 = i25 + ((i28 & 511) << 4) | 0;
10544 1 : } else {
10545 1 : i25 = i23 + ((i28 & 255) << 4) | 0;
10546 1 : }
10547 1 : _luaV_settable(i1, HEAP32[(HEAP32[i22 + (i26 << 2) >> 2] | 0) + 8 >> 2] | 0, i27, i25);
10548 1 : i25 = HEAP32[i20 >> 2] | 0;
10549 1 : continue L3;
10550 1 : }
10551 1 : case 11:
10552 1 : {
10553 1 : i29 = i28 >>> 23;
10554 1 : i28 = i28 >>> 14 & 511;
10555 1 : i30 = _luaH_new(i1) | 0;
10556 1 : HEAP32[i27 >> 2] = i30;
10557 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 69;
10558 1 : if ((i28 | i29 | 0) != 0) {
10559 1 : i36 = _luaO_fb2int(i29) | 0;
10560 1 : _luaH_resize(i1, i30, i36, _luaO_fb2int(i28) | 0);
10561 1 : }
10562 1 : if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
10563 1 : HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
10564 1 : _luaC_step(i1);
10565 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
10566 1 : }
10567 1 : i25 = HEAP32[i20 >> 2] | 0;
10568 1 : continue L3;
10569 1 : }
10570 1 : case 19:
10571 1 : {
10572 1 : i36 = i28 >>> 23;
10573 1 : i28 = i25 + (i36 << 4) | 0;
10574 1 : if ((HEAP32[i25 + (i36 << 4) + 8 >> 2] | 0) == 3) {
10575 1 : HEAPF64[i27 >> 3] = -+HEAPF64[i28 >> 3];
10576 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10577 1 : continue L3;
10578 1 : } else {
10579 1 : _luaV_arith(i1, i27, i28, i28, 12);
10580 1 : i25 = HEAP32[i20 >> 2] | 0;
10581 1 : continue L3;
10582 1 : }
10583 1 : }
10584 1 : case 15:
10585 1 : {
10586 1 : i29 = i28 >>> 23;
10587 1 : if ((i29 & 256 | 0) == 0) {
10588 1 : i29 = i25 + (i29 << 4) | 0;
10589 1 : } else {
10590 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10591 1 : }
10592 1 : i28 = i28 >>> 14;
10593 1 : if ((i28 & 256 | 0) == 0) {
10594 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10595 1 : } else {
10596 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10597 1 : }
10598 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10599 1 : HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] * +HEAPF64[i28 >> 3];
10600 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10601 1 : continue L3;
10602 1 : }
10603 1 : _luaV_arith(i1, i27, i29, i28, 8);
10604 1 : i25 = HEAP32[i20 >> 2] | 0;
10605 1 : continue L3;
10606 1 : }
10607 1 : case 16:
10608 1 : {
10609 1 : i29 = i28 >>> 23;
10610 1 : if ((i29 & 256 | 0) == 0) {
10611 1 : i29 = i25 + (i29 << 4) | 0;
10612 1 : } else {
10613 1 : i29 = i23 + ((i29 & 255) << 4) | 0;
10614 1 : }
10615 1 : i28 = i28 >>> 14;
10616 1 : if ((i28 & 256 | 0) == 0) {
10617 1 : i28 = i25 + ((i28 & 511) << 4) | 0;
10618 1 : } else {
10619 1 : i28 = i23 + ((i28 & 255) << 4) | 0;
10620 1 : }
10621 1 : if ((HEAP32[i29 + 8 >> 2] | 0) == 3 ? (HEAP32[i28 + 8 >> 2] | 0) == 3 : 0) {
10622 1 : HEAPF64[i27 >> 3] = +HEAPF64[i29 >> 3] / +HEAPF64[i28 >> 3];
10623 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10624 1 : continue L3;
10625 1 : }
10626 1 : _luaV_arith(i1, i27, i29, i28, 9);
10627 1 : i25 = HEAP32[i20 >> 2] | 0;
10628 1 : continue L3;
10629 1 : }
10630 1 : case 20:
10631 1 : {
10632 1 : i29 = i28 >>> 23;
10633 1 : i28 = HEAP32[i25 + (i29 << 4) + 8 >> 2] | 0;
10634 1 : if ((i28 | 0) != 0) {
10635 1 : if ((i28 | 0) == 1) {
10636 1 : i28 = (HEAP32[i25 + (i29 << 4) >> 2] | 0) == 0;
10637 1 : } else {
10638 1 : i28 = 0;
10639 1 : }
10640 1 : } else {
10641 1 : i28 = 1;
10642 1 : }
10643 1 : HEAP32[i27 >> 2] = i28 & 1;
10644 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 1;
10645 1 : continue L3;
10646 1 : }
10647 1 : case 21:
10648 1 : {
10649 1 : _luaV_objlen(i1, i27, i25 + (i28 >>> 23 << 4) | 0);
10650 1 : i25 = HEAP32[i20 >> 2] | 0;
10651 1 : continue L3;
10652 1 : }
10653 1 : case 22:
10654 1 : {
10655 1 : i27 = i28 >>> 23;
10656 1 : i28 = i28 >>> 14 & 511;
10657 1 : HEAP32[i5 >> 2] = i25 + (i28 + 1 << 4);
10658 1 : _luaV_concat(i1, 1 - i27 + i28 | 0);
10659 1 : i25 = HEAP32[i20 >> 2] | 0;
10660 1 : i28 = i25 + (i27 << 4) | 0;
10661 1 : i34 = i28;
10662 1 : i35 = HEAP32[i34 + 4 >> 2] | 0;
10663 1 : i36 = i25 + (i26 << 4) | 0;
10664 1 : HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
10665 1 : HEAP32[i36 + 4 >> 2] = i35;
10666 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = HEAP32[i25 + (i27 << 4) + 8 >> 2];
10667 1 : if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
10668 1 : if (!(i26 >>> 0 < i27 >>> 0)) {
10669 1 : i28 = i25 + (i26 + 1 << 4) | 0;
10670 1 : }
10671 1 : HEAP32[i5 >> 2] = i28;
10672 1 : _luaC_step(i1);
10673 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
10674 1 : }
10675 1 : i25 = HEAP32[i20 >> 2] | 0;
10676 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
10677 1 : continue L3;
10678 1 : }
10679 1 : case 25:
10680 1 : {
10681 1 : i27 = i28 >>> 23;
10682 1 : if ((i27 & 256 | 0) == 0) {
10683 1 : i27 = i25 + (i27 << 4) | 0;
10684 1 : } else {
10685 1 : i27 = i23 + ((i27 & 255) << 4) | 0;
10686 1 : }
10687 1 : i28 = i28 >>> 14;
10688 1 : if ((i28 & 256 | 0) == 0) {
10689 1 : i25 = i25 + ((i28 & 511) << 4) | 0;
10690 1 : } else {
10691 1 : i25 = i23 + ((i28 & 255) << 4) | 0;
10692 1 : }
10693 1 : i36 = (_luaV_lessthan(i1, i27, i25) | 0) == (i26 | 0);
10694 1 : i26 = HEAP32[i21 >> 2] | 0;
10695 1 : if (i36) {
10696 1 : i25 = HEAP32[i26 >> 2] | 0;
10697 1 : i27 = i25 >>> 6 & 255;
10698 1 : if ((i27 | 0) != 0) {
10699 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
10700 1 : i26 = HEAP32[i21 >> 2] | 0;
10701 1 : }
10702 1 : i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
10703 1 : } else {
10704 1 : i25 = i26 + 4 | 0;
10705 1 : }
10706 1 : HEAP32[i21 >> 2] = i25;
10707 1 : i25 = HEAP32[i20 >> 2] | 0;
10708 1 : continue L3;
10709 1 : }
10710 1 : case 27:
10711 1 : {
10712 1 : i29 = HEAP32[i25 + (i26 << 4) + 8 >> 2] | 0;
10713 1 : i26 = (i29 | 0) == 0;
10714 1 : if ((i28 & 8372224 | 0) == 0) {
10715 1 : if (!i26) {
10716 1 : if (!((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0)) {
10717 1 : i15 = 192;
10718 1 : }
10719 1 : }
10720 1 : } else {
10721 1 : if (!i26) {
10722 1 : if ((i29 | 0) == 1 ? (HEAP32[i27 >> 2] | 0) == 0 : 0) {
10723 1 : i15 = 192;
10724 1 : }
10725 1 : } else {
10726 1 : i15 = 192;
10727 1 : }
10728 1 : }
10729 1 : if ((i15 | 0) == 192) {
10730 1 : i15 = 0;
10731 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
10732 1 : continue L3;
10733 1 : }
10734 1 : i27 = HEAP32[i21 >> 2] | 0;
10735 1 : i26 = HEAP32[i27 >> 2] | 0;
10736 1 : i28 = i26 >>> 6 & 255;
10737 1 : if ((i28 | 0) != 0) {
10738 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
10739 1 : i27 = HEAP32[i21 >> 2] | 0;
10740 1 : }
10741 1 : HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
10742 1 : continue L3;
10743 1 : }
10744 1 : case 26:
10745 1 : {
10746 1 : i27 = i28 >>> 23;
10747 1 : if ((i27 & 256 | 0) == 0) {
10748 1 : i27 = i25 + (i27 << 4) | 0;
10749 1 : } else {
10750 1 : i27 = i23 + ((i27 & 255) << 4) | 0;
10751 1 : }
10752 1 : i28 = i28 >>> 14;
10753 1 : if ((i28 & 256 | 0) == 0) {
10754 1 : i25 = i25 + ((i28 & 511) << 4) | 0;
10755 1 : } else {
10756 1 : i25 = i23 + ((i28 & 255) << 4) | 0;
10757 1 : }
10758 1 : i36 = (_luaV_lessequal(i1, i27, i25) | 0) == (i26 | 0);
10759 1 : i26 = HEAP32[i21 >> 2] | 0;
10760 1 : if (i36) {
10761 1 : i25 = HEAP32[i26 >> 2] | 0;
10762 1 : i27 = i25 >>> 6 & 255;
10763 1 : if ((i27 | 0) != 0) {
10764 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i27 + -1 << 4) | 0);
10765 1 : i26 = HEAP32[i21 >> 2] | 0;
10766 1 : }
10767 1 : i25 = i26 + ((i25 >>> 14) + -131070 << 2) | 0;
10768 1 : } else {
10769 1 : i25 = i26 + 4 | 0;
10770 1 : }
10771 1 : HEAP32[i21 >> 2] = i25;
10772 1 : i25 = HEAP32[i20 >> 2] | 0;
10773 1 : continue L3;
10774 1 : }
10775 1 : case 28:
10776 1 : {
10777 1 : i30 = i28 >>> 23;
10778 1 : i29 = i25 + (i30 << 4) | 0;
10779 1 : i30 = HEAP32[i25 + (i30 << 4) + 8 >> 2] | 0;
10780 1 : i31 = (i30 | 0) == 0;
10781 1 : if ((i28 & 8372224 | 0) == 0) {
10782 1 : if (!i31) {
10783 1 : if (!((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0)) {
10784 1 : i15 = 203;
10785 1 : }
10786 1 : }
10787 1 : } else {
10788 1 : if (!i31) {
10789 1 : if ((i30 | 0) == 1 ? (HEAP32[i29 >> 2] | 0) == 0 : 0) {
10790 1 : i15 = 203;
10791 1 : }
10792 1 : } else {
10793 1 : i15 = 203;
10794 1 : }
10795 1 : }
10796 1 : if ((i15 | 0) == 203) {
10797 1 : i15 = 0;
10798 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + 4;
10799 1 : continue L3;
10800 1 : }
10801 1 : i36 = i29;
10802 1 : i28 = HEAP32[i36 + 4 >> 2] | 0;
10803 1 : HEAP32[i27 >> 2] = HEAP32[i36 >> 2];
10804 1 : HEAP32[i27 + 4 >> 2] = i28;
10805 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = i30;
10806 1 : i27 = HEAP32[i21 >> 2] | 0;
10807 1 : i26 = HEAP32[i27 >> 2] | 0;
10808 1 : i28 = i26 >>> 6 & 255;
10809 1 : if ((i28 | 0) != 0) {
10810 1 : _luaF_close(i1, (HEAP32[i20 >> 2] | 0) + (i28 + -1 << 4) | 0);
10811 1 : i27 = HEAP32[i21 >> 2] | 0;
10812 1 : }
10813 1 : HEAP32[i21 >> 2] = i27 + ((i26 >>> 14) + -131070 << 2);
10814 1 : continue L3;
10815 1 : }
10816 1 : case 30:
10817 1 : {
10818 1 : i28 = i28 >>> 23;
10819 1 : if ((i28 | 0) != 0) {
10820 1 : HEAP32[i5 >> 2] = i25 + (i26 + i28 << 4);
10821 1 : }
10822 1 : if ((_luaD_precall(i1, i27, -1) | 0) == 0) {
10823 1 : i15 = 218;
10824 1 : break L3;
10825 1 : }
10826 1 : i25 = HEAP32[i20 >> 2] | 0;
10827 1 : continue L3;
10828 1 : }
10829 1 : case 29:
10830 1 : {
10831 1 : i29 = i28 >>> 23;
10832 1 : i28 = i28 >>> 14 & 511;
10833 1 : if ((i29 | 0) != 0) {
10834 1 : HEAP32[i5 >> 2] = i25 + (i26 + i29 << 4);
10835 1 : }
10836 1 : if ((_luaD_precall(i1, i27, i28 + -1 | 0) | 0) == 0) {
10837 1 : i15 = 213;
10838 1 : break L3;
10839 1 : }
10840 1 : if ((i28 | 0) != 0) {
10841 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
10842 1 : }
10843 1 : i25 = HEAP32[i20 >> 2] | 0;
10844 1 : continue L3;
10845 1 : }
10846 1 : case 32:
10847 1 : {
10848 1 : d39 = +HEAPF64[i25 + (i26 + 2 << 4) >> 3];
10849 1 : d38 = d39 + +HEAPF64[i27 >> 3];
10850 1 : d37 = +HEAPF64[i25 + (i26 + 1 << 4) >> 3];
10851 1 : if (d39 > 0.0) {
10852 1 : if (!(d38 <= d37)) {
10853 1 : continue L3;
10854 1 : }
10855 1 : } else {
10856 1 : if (!(d37 <= d38)) {
10857 1 : continue L3;
10858 1 : }
10859 1 : }
10860 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
10861 1 : HEAPF64[i27 >> 3] = d38;
10862 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 3;
10863 1 : i36 = i26 + 3 | 0;
10864 1 : HEAPF64[i25 + (i36 << 4) >> 3] = d38;
10865 1 : HEAP32[i25 + (i36 << 4) + 8 >> 2] = 3;
10866 1 : continue L3;
10867 1 : }
10868 1 : case 33:
10869 1 : {
10870 1 : i32 = i26 + 1 | 0;
10871 1 : i30 = i25 + (i32 << 4) | 0;
10872 1 : i31 = i26 + 2 | 0;
10873 1 : i29 = i25 + (i31 << 4) | 0;
10874 1 : i26 = i25 + (i26 << 4) + 8 | 0;
10875 1 : i33 = HEAP32[i26 >> 2] | 0;
10876 1 : if ((i33 | 0) != 3) {
10877 1 : if ((i33 & 15 | 0) != 4) {
10878 1 : i15 = 239;
10879 1 : break L1;
10880 1 : }
10881 1 : i36 = HEAP32[i27 >> 2] | 0;
10882 1 : if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i8) | 0) == 0) {
10883 1 : i15 = 239;
10884 1 : break L1;
10885 1 : }
10886 1 : HEAPF64[i27 >> 3] = +HEAPF64[i8 >> 3];
10887 1 : HEAP32[i26 >> 2] = 3;
10888 1 : if ((i27 | 0) == 0) {
10889 1 : i15 = 239;
10890 1 : break L1;
10891 1 : }
10892 1 : }
10893 1 : i33 = i25 + (i32 << 4) + 8 | 0;
10894 1 : i32 = HEAP32[i33 >> 2] | 0;
10895 1 : if ((i32 | 0) != 3) {
10896 1 : if ((i32 & 15 | 0) != 4) {
10897 1 : i15 = 244;
10898 1 : break L1;
10899 1 : }
10900 1 : i36 = HEAP32[i30 >> 2] | 0;
10901 1 : if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i9) | 0) == 0) {
10902 1 : i15 = 244;
10903 1 : break L1;
10904 1 : }
10905 1 : HEAPF64[i30 >> 3] = +HEAPF64[i9 >> 3];
10906 1 : HEAP32[i33 >> 2] = 3;
10907 1 : }
10908 1 : i31 = i25 + (i31 << 4) + 8 | 0;
10909 1 : i30 = HEAP32[i31 >> 2] | 0;
10910 1 : if ((i30 | 0) != 3) {
10911 1 : if ((i30 & 15 | 0) != 4) {
10912 1 : i15 = 249;
10913 1 : break L1;
10914 1 : }
10915 1 : i36 = HEAP32[i29 >> 2] | 0;
10916 1 : if ((_luaO_str2d(i36 + 16 | 0, HEAP32[i36 + 12 >> 2] | 0, i10) | 0) == 0) {
10917 1 : i15 = 249;
10918 1 : break L1;
10919 1 : }
10920 1 : HEAPF64[i29 >> 3] = +HEAPF64[i10 >> 3];
10921 1 : HEAP32[i31 >> 2] = 3;
10922 1 : }
10923 1 : HEAPF64[i27 >> 3] = +HEAPF64[i27 >> 3] - +HEAPF64[i29 >> 3];
10924 1 : HEAP32[i26 >> 2] = 3;
10925 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
10926 1 : continue L3;
10927 1 : }
10928 1 : case 31:
10929 1 : {
10930 1 : i15 = 223;
10931 1 : break L3;
10932 1 : }
10933 1 : case 34:
10934 1 : {
10935 1 : i35 = i26 + 3 | 0;
10936 1 : i36 = i25 + (i35 << 4) | 0;
10937 1 : i33 = i26 + 2 | 0;
10938 1 : i34 = i26 + 5 | 0;
10939 1 : i32 = i25 + (i33 << 4) | 0;
10940 1 : i31 = HEAP32[i32 + 4 >> 2] | 0;
10941 1 : i30 = i25 + (i34 << 4) | 0;
10942 1 : HEAP32[i30 >> 2] = HEAP32[i32 >> 2];
10943 1 : HEAP32[i30 + 4 >> 2] = i31;
10944 1 : HEAP32[i25 + (i34 << 4) + 8 >> 2] = HEAP32[i25 + (i33 << 4) + 8 >> 2];
10945 1 : i34 = i26 + 1 | 0;
10946 1 : i33 = i26 + 4 | 0;
10947 1 : i30 = i25 + (i34 << 4) | 0;
10948 1 : i31 = HEAP32[i30 + 4 >> 2] | 0;
10949 1 : i32 = i25 + (i33 << 4) | 0;
10950 1 : HEAP32[i32 >> 2] = HEAP32[i30 >> 2];
10951 1 : HEAP32[i32 + 4 >> 2] = i31;
10952 1 : HEAP32[i25 + (i33 << 4) + 8 >> 2] = HEAP32[i25 + (i34 << 4) + 8 >> 2];
10953 1 : i33 = i27;
10954 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
10955 1 : i27 = i36;
10956 1 : HEAP32[i27 >> 2] = HEAP32[i33 >> 2];
10957 1 : HEAP32[i27 + 4 >> 2] = i34;
10958 1 : HEAP32[i25 + (i35 << 4) + 8 >> 2] = HEAP32[i25 + (i26 << 4) + 8 >> 2];
10959 1 : HEAP32[i5 >> 2] = i25 + (i26 + 6 << 4);
10960 1 : _luaD_call(i1, i36, i28 >>> 14 & 511, 1);
10961 1 : i36 = HEAP32[i20 >> 2] | 0;
10962 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
10963 1 : i27 = HEAP32[i21 >> 2] | 0;
10964 1 : HEAP32[i21 >> 2] = i27 + 4;
10965 1 : i27 = HEAP32[i27 >> 2] | 0;
10966 1 : i25 = i36;
10967 1 : i28 = i27;
10968 1 : i27 = i36 + ((i27 >>> 6 & 255) << 4) | 0;
10969 1 : break;
10970 1 : }
10971 1 : case 35:
10972 1 : {
10973 1 : break;
10974 1 : }
10975 1 : case 36:
10976 1 : {
10977 1 : i29 = i28 >>> 23;
10978 1 : i28 = i28 >>> 14 & 511;
10979 1 : if ((i29 | 0) == 0) {
10980 1 : i29 = ((HEAP32[i5 >> 2] | 0) - i27 >> 4) + -1 | 0;
10981 1 : }
10982 1 : if ((i28 | 0) == 0) {
10983 1 : i28 = HEAP32[i21 >> 2] | 0;
10984 1 : HEAP32[i21 >> 2] = i28 + 4;
10985 1 : i28 = (HEAP32[i28 >> 2] | 0) >>> 6;
10986 1 : }
10987 1 : i27 = HEAP32[i27 >> 2] | 0;
10988 1 : i30 = i29 + -50 + (i28 * 50 | 0) | 0;
10989 1 : if ((i30 | 0) > (HEAP32[i27 + 28 >> 2] | 0)) {
10990 1 : _luaH_resizearray(i1, i27, i30);
10991 1 : }
10992 1 : if ((i29 | 0) > 0) {
10993 1 : i28 = i27 + 5 | 0;
10994 1 : while (1) {
10995 1 : i36 = i29 + i26 | 0;
10996 1 : i32 = i25 + (i36 << 4) | 0;
10997 1 : i31 = i30 + -1 | 0;
10998 1 : _luaH_setint(i1, i27, i30, i32);
10999 1 : if (((HEAP32[i25 + (i36 << 4) + 8 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i32 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i28] & 4) == 0) : 0) {
11000 1 : _luaC_barrierback_(i1, i27);
11001 1 : }
11002 1 : i29 = i29 + -1 | 0;
11003 1 : if ((i29 | 0) > 0) {
11004 1 : i30 = i31;
11005 1 : } else {
11006 1 : break;
11007 1 : }
11008 1 : }
11009 1 : }
11010 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
11011 1 : continue L3;
11012 1 : }
11013 1 : case 37:
11014 1 : {
11015 1 : i29 = HEAP32[(HEAP32[(HEAP32[i18 >> 2] | 0) + 16 >> 2] | 0) + (i28 >>> 14 << 2) >> 2] | 0;
11016 1 : i28 = i29 + 32 | 0;
11017 1 : i33 = HEAP32[i28 >> 2] | 0;
11018 1 : i30 = HEAP32[i29 + 40 >> 2] | 0;
11019 1 : i31 = HEAP32[i29 + 28 >> 2] | 0;
11020 1 : L323 : do {
11021 1 : if ((i33 | 0) == 0) {
11022 1 : i15 = 276;
11023 1 : } else {
11024 1 : if ((i30 | 0) > 0) {
11025 1 : i34 = i33 + 16 | 0;
11026 1 : i32 = 0;
11027 1 : while (1) {
11028 1 : i35 = HEAPU8[i31 + (i32 << 3) + 5 | 0] | 0;
11029 1 : if ((HEAP8[i31 + (i32 << 3) + 4 | 0] | 0) == 0) {
11030 1 : i36 = HEAP32[(HEAP32[i22 + (i35 << 2) >> 2] | 0) + 8 >> 2] | 0;
11031 1 : } else {
11032 1 : i36 = i25 + (i35 << 4) | 0;
11033 1 : }
11034 1 : i35 = i32 + 1 | 0;
11035 1 : if ((HEAP32[(HEAP32[i34 + (i32 << 2) >> 2] | 0) + 8 >> 2] | 0) != (i36 | 0)) {
11036 1 : i15 = 276;
11037 1 : break L323;
11038 1 : }
11039 1 : if ((i35 | 0) < (i30 | 0)) {
11040 1 : i32 = i35;
11041 1 : } else {
11042 1 : break;
11043 1 : }
11044 1 : }
11045 1 : }
11046 1 : HEAP32[i27 >> 2] = i33;
11047 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
11048 1 : }
11049 1 : } while (0);
11050 1 : if ((i15 | 0) == 276) {
11051 1 : i15 = 0;
11052 1 : i32 = _luaF_newLclosure(i1, i30) | 0;
11053 1 : HEAP32[i32 + 12 >> 2] = i29;
11054 1 : HEAP32[i27 >> 2] = i32;
11055 1 : HEAP32[i25 + (i26 << 4) + 8 >> 2] = 70;
11056 1 : if ((i30 | 0) > 0) {
11057 1 : i27 = i32 + 16 | 0;
11058 1 : i34 = 0;
11059 1 : do {
11060 1 : i33 = HEAPU8[i31 + (i34 << 3) + 5 | 0] | 0;
11061 1 : if ((HEAP8[i31 + (i34 << 3) + 4 | 0] | 0) == 0) {
11062 1 : HEAP32[i27 + (i34 << 2) >> 2] = HEAP32[i22 + (i33 << 2) >> 2];
11063 1 : } else {
11064 1 : HEAP32[i27 + (i34 << 2) >> 2] = _luaF_findupval(i1, i25 + (i33 << 4) | 0) | 0;
11065 1 : }
11066 1 : i34 = i34 + 1 | 0;
11067 1 : } while ((i34 | 0) != (i30 | 0));
11068 1 : }
11069 1 : if (!((HEAP8[i29 + 5 | 0] & 4) == 0)) {
11070 1 : _luaC_barrierproto_(i1, i29, i32);
11071 1 : }
11072 1 : HEAP32[i28 >> 2] = i32;
11073 1 : }
11074 1 : if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) > 0) {
11075 1 : HEAP32[i5 >> 2] = i25 + (i26 + 1 << 4);
11076 1 : _luaC_step(i1);
11077 1 : HEAP32[i5 >> 2] = HEAP32[i24 >> 2];
11078 1 : }
11079 1 : i25 = HEAP32[i20 >> 2] | 0;
11080 1 : continue L3;
11081 1 : }
11082 1 : case 38:
11083 1 : {
11084 1 : i36 = i28 >>> 23;
11085 1 : i29 = i36 + -1 | 0;
11086 1 : i30 = (i25 - (HEAP32[i19 >> 2] | 0) >> 4) - (HEAPU8[(HEAP32[i18 >> 2] | 0) + 76 | 0] | 0) | 0;
11087 1 : i28 = i30 + -1 | 0;
11088 1 : if ((i36 | 0) == 0) {
11089 1 : if (((HEAP32[i11 >> 2] | 0) - (HEAP32[i5 >> 2] | 0) >> 4 | 0) <= (i28 | 0)) {
11090 1 : _luaD_growstack(i1, i28);
11091 1 : }
11092 1 : i27 = HEAP32[i20 >> 2] | 0;
11093 1 : HEAP32[i5 >> 2] = i27 + (i28 + i26 << 4);
11094 1 : i29 = i28;
11095 1 : i25 = i27;
11096 1 : i27 = i27 + (i26 << 4) | 0;
11097 1 : }
11098 1 : if ((i29 | 0) <= 0) {
11099 1 : continue L3;
11100 1 : }
11101 1 : i26 = 1 - i30 | 0;
11102 1 : i30 = 0;
11103 1 : while (1) {
11104 1 : if ((i30 | 0) < (i28 | 0)) {
11105 1 : i36 = i30 + i26 | 0;
11106 1 : i33 = i25 + (i36 << 4) | 0;
11107 1 : i34 = HEAP32[i33 + 4 >> 2] | 0;
11108 1 : i35 = i27 + (i30 << 4) | 0;
11109 1 : HEAP32[i35 >> 2] = HEAP32[i33 >> 2];
11110 1 : HEAP32[i35 + 4 >> 2] = i34;
11111 1 : HEAP32[i27 + (i30 << 4) + 8 >> 2] = HEAP32[i25 + (i36 << 4) + 8 >> 2];
11112 1 : } else {
11113 1 : HEAP32[i27 + (i30 << 4) + 8 >> 2] = 0;
11114 1 : }
11115 1 : i30 = i30 + 1 | 0;
11116 1 : if ((i30 | 0) == (i29 | 0)) {
11117 1 : continue L3;
11118 1 : }
11119 1 : }
11120 1 : }
11121 1 : default:
11122 1 : {
11123 1 : continue L3;
11124 1 : }
11125 1 : }
11126 1 : i26 = HEAP32[i27 + 24 >> 2] | 0;
11127 1 : if ((i26 | 0) == 0) {
11128 1 : continue;
11129 1 : }
11130 1 : i34 = i27 + 16 | 0;
11131 1 : i35 = HEAP32[i34 + 4 >> 2] | 0;
11132 1 : i36 = i27;
11133 1 : HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
11134 1 : HEAP32[i36 + 4 >> 2] = i35;
11135 1 : HEAP32[i27 + 8 >> 2] = i26;
11136 1 : HEAP32[i21 >> 2] = (HEAP32[i21 >> 2] | 0) + ((i28 >>> 14) + -131071 << 2);
11137 1 : }
11138 1 : if ((i15 | 0) == 213) {
11139 1 : i15 = 0;
11140 1 : i19 = HEAP32[i3 >> 2] | 0;
11141 1 : i36 = i19 + 18 | 0;
11142 1 : HEAP8[i36] = HEAPU8[i36] | 4;
11143 1 : continue;
11144 1 : } else if ((i15 | 0) == 218) {
11145 1 : i15 = 0;
11146 1 : i22 = HEAP32[i3 >> 2] | 0;
11147 1 : i19 = HEAP32[i22 + 8 >> 2] | 0;
11148 1 : i23 = HEAP32[i22 >> 2] | 0;
11149 1 : i24 = HEAP32[i19 >> 2] | 0;
11150 1 : i20 = i22 + 24 | 0;
11151 1 : i21 = (HEAP32[i20 >> 2] | 0) + (HEAPU8[(HEAP32[(HEAP32[i23 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] << 4) | 0;
11152 1 : if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
11153 1 : _luaF_close(i1, HEAP32[i19 + 24 >> 2] | 0);
11154 1 : }
11155 1 : if (i23 >>> 0 < i21 >>> 0) {
11156 1 : i25 = i23;
11157 1 : i18 = 0;
11158 1 : do {
11159 1 : i34 = i25;
11160 1 : i35 = HEAP32[i34 + 4 >> 2] | 0;
11161 1 : i36 = i24 + (i18 << 4) | 0;
11162 1 : HEAP32[i36 >> 2] = HEAP32[i34 >> 2];
11163 1 : HEAP32[i36 + 4 >> 2] = i35;
11164 1 : HEAP32[i24 + (i18 << 4) + 8 >> 2] = HEAP32[i23 + (i18 << 4) + 8 >> 2];
11165 1 : i18 = i18 + 1 | 0;
11166 1 : i25 = i23 + (i18 << 4) | 0;
11167 1 : } while (i25 >>> 0 < i21 >>> 0);
11168 1 : }
11169 1 : i36 = i23;
11170 1 : HEAP32[i19 + 24 >> 2] = i24 + ((HEAP32[i20 >> 2] | 0) - i36 >> 4 << 4);
11171 1 : i36 = i24 + ((HEAP32[i5 >> 2] | 0) - i36 >> 4 << 4) | 0;
11172 1 : HEAP32[i5 >> 2] = i36;
11173 1 : HEAP32[i19 + 4 >> 2] = i36;
11174 1 : HEAP32[i19 + 28 >> 2] = HEAP32[i22 + 28 >> 2];
11175 1 : i36 = i19 + 18 | 0;
11176 1 : HEAP8[i36] = HEAPU8[i36] | 64;
11177 1 : HEAP32[i3 >> 2] = i19;
11178 1 : continue;
11179 1 : } else if ((i15 | 0) == 223) {
11180 1 : i15 = 0;
11181 1 : i20 = i28 >>> 23;
11182 1 : if ((i20 | 0) != 0) {
11183 1 : HEAP32[i5 >> 2] = i25 + (i20 + -1 + i26 << 4);
11184 1 : }
11185 1 : if ((HEAP32[(HEAP32[i18 >> 2] | 0) + 56 >> 2] | 0) > 0) {
11186 1 : _luaF_close(i1, i25);
11187 1 : }
11188 1 : i18 = _luaD_poscall(i1, i27) | 0;
11189 1 : if ((HEAP8[i19 + 18 | 0] & 4) == 0) {
11190 1 : i15 = 228;
11191 1 : break;
11192 1 : }
11193 1 : i19 = HEAP32[i3 >> 2] | 0;
11194 1 : if ((i18 | 0) == 0) {
11195 1 : continue;
11196 1 : }
11197 1 : HEAP32[i5 >> 2] = HEAP32[i19 + 4 >> 2];
11198 1 : continue;
11199 1 : }
11200 1 : }
11201 1 : if ((i15 | 0) == 23) {
11202 1 : if (!i27) {
11203 1 : i36 = HEAP32[i29 >> 2] | 0;
11204 1 : i36 = i36 + -4 | 0;
11205 1 : HEAP32[i29 >> 2] = i36;
11206 1 : i36 = HEAP8[i26] | 0;
11207 1 : i36 = i36 & 255;
11208 1 : i36 = i36 | 128;
11209 1 : i36 = i36 & 255;
11210 1 : HEAP8[i26] = i36;
11211 1 : i36 = HEAP32[i5 >> 2] | 0;
11212 1 : i36 = i36 + -16 | 0;
11213 1 : HEAP32[i25 >> 2] = i36;
11214 1 : _luaD_throw(i1, 1);
11215 1 : }
11216 1 : HEAP32[i17 >> 2] = 1;
11217 1 : i36 = HEAP32[i29 >> 2] | 0;
11218 1 : i36 = i36 + -4 | 0;
11219 1 : HEAP32[i29 >> 2] = i36;
11220 1 : i36 = HEAP8[i26] | 0;
11221 1 : i36 = i36 & 255;
11222 1 : i36 = i36 | 128;
11223 1 : i36 = i36 & 255;
11224 1 : HEAP8[i26] = i36;
11225 1 : i36 = HEAP32[i5 >> 2] | 0;
11226 1 : i36 = i36 + -16 | 0;
11227 1 : HEAP32[i25 >> 2] = i36;
11228 1 : _luaD_throw(i1, 1);
11229 1 : } else if ((i15 | 0) == 228) {
11230 1 : STACKTOP = i12;
11231 1 : return;
11232 1 : } else if ((i15 | 0) == 239) {
11233 1 : _luaG_runerror(i1, 9040, i13);
11234 1 : } else if ((i15 | 0) == 244) {
11235 1 : _luaG_runerror(i1, 9080, i13);
11236 1 : } else if ((i15 | 0) == 249) {
11237 1 : _luaG_runerror(i1, 9112, i13);
11238 1 : }
11239 1 : }
11240 35 : function ___floatscan(i8, i2, i11) {
11241 35 : i8 = i8 | 0;
11242 35 : i2 = i2 | 0;
11243 35 : i11 = i11 | 0;
11244 35 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i12 = 0, i13 = 0, d14 = 0.0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, d28 = 0.0, i29 = 0, d30 = 0.0, d31 = 0.0, d32 = 0.0, d33 = 0.0;
11245 35 : i1 = STACKTOP;
11246 35 : STACKTOP = STACKTOP + 512 | 0;
11247 35 : i5 = i1;
11248 35 : if ((i2 | 0) == 1) {
11249 35 : i2 = 53;
11250 35 : i3 = -1074;
11251 35 : } else if ((i2 | 0) == 2) {
11252 35 : i2 = 53;
11253 35 : i3 = -1074;
11254 35 : } else if ((i2 | 0) == 0) {
11255 35 : i2 = 24;
11256 35 : i3 = -149;
11257 35 : } else {
11258 35 : d31 = 0.0;
11259 35 : STACKTOP = i1;
11260 35 : return +d31;
11261 35 : }
11262 35 : i9 = i8 + 4 | 0;
11263 35 : i10 = i8 + 100 | 0;
11264 35 : do {
11265 35 : i4 = HEAP32[i9 >> 2] | 0;
11266 35 : if (i4 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11267 35 : HEAP32[i9 >> 2] = i4 + 1;
11268 35 : i21 = HEAPU8[i4] | 0;
11269 35 : } else {
11270 35 : i21 = ___shgetc(i8) | 0;
11271 35 : }
11272 35 : } while ((_isspace(i21 | 0) | 0) != 0);
11273 35 : do {
11274 35 : if ((i21 | 0) == 43 | (i21 | 0) == 45) {
11275 35 : i4 = 1 - (((i21 | 0) == 45) << 1) | 0;
11276 35 : i7 = HEAP32[i9 >> 2] | 0;
11277 35 : if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11278 35 : HEAP32[i9 >> 2] = i7 + 1;
11279 35 : i21 = HEAPU8[i7] | 0;
11280 35 : break;
11281 35 : } else {
11282 35 : i21 = ___shgetc(i8) | 0;
11283 35 : break;
11284 35 : }
11285 35 : } else {
11286 35 : i4 = 1;
11287 35 : }
11288 35 : } while (0);
11289 35 : i7 = 0;
11290 35 : do {
11291 35 : if ((i21 | 32 | 0) != (HEAP8[13408 + i7 | 0] | 0)) {
11292 35 : break;
11293 35 : }
11294 35 : do {
11295 35 : if (i7 >>> 0 < 7) {
11296 35 : i12 = HEAP32[i9 >> 2] | 0;
11297 35 : if (i12 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11298 35 : HEAP32[i9 >> 2] = i12 + 1;
11299 35 : i21 = HEAPU8[i12] | 0;
11300 35 : break;
11301 35 : } else {
11302 35 : i21 = ___shgetc(i8) | 0;
11303 35 : break;
11304 35 : }
11305 35 : }
11306 35 : } while (0);
11307 35 : i7 = i7 + 1 | 0;
11308 35 : } while (i7 >>> 0 < 8);
11309 35 : do {
11310 35 : if ((i7 | 0) == 3) {
11311 35 : i13 = 23;
11312 35 : } else if ((i7 | 0) != 8) {
11313 35 : i12 = (i11 | 0) == 0;
11314 35 : if (!(i7 >>> 0 < 4 | i12)) {
11315 35 : if ((i7 | 0) == 8) {
11316 35 : break;
11317 35 : } else {
11318 35 : i13 = 23;
11319 35 : break;
11320 35 : }
11321 35 : }
11322 35 : L34 : do {
11323 35 : if ((i7 | 0) == 0) {
11324 35 : i7 = 0;
11325 35 : do {
11326 35 : if ((i21 | 32 | 0) != (HEAP8[13424 + i7 | 0] | 0)) {
11327 35 : break L34;
11328 35 : }
11329 35 : do {
11330 35 : if (i7 >>> 0 < 2) {
11331 35 : i15 = HEAP32[i9 >> 2] | 0;
11332 35 : if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11333 35 : HEAP32[i9 >> 2] = i15 + 1;
11334 35 : i21 = HEAPU8[i15] | 0;
11335 35 : break;
11336 35 : } else {
11337 35 : i21 = ___shgetc(i8) | 0;
11338 35 : break;
11339 35 : }
11340 35 : }
11341 35 : } while (0);
11342 35 : i7 = i7 + 1 | 0;
11343 35 : } while (i7 >>> 0 < 3);
11344 35 : }
11345 35 : } while (0);
11346 35 : if ((i7 | 0) == 0) {
11347 35 : do {
11348 35 : if ((i21 | 0) == 48) {
11349 35 : i7 = HEAP32[i9 >> 2] | 0;
11350 35 : if (i7 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11351 35 : HEAP32[i9 >> 2] = i7 + 1;
11352 35 : i7 = HEAPU8[i7] | 0;
11353 35 : } else {
11354 35 : i7 = ___shgetc(i8) | 0;
11355 35 : }
11356 35 : if ((i7 | 32 | 0) != 120) {
11357 35 : if ((HEAP32[i10 >> 2] | 0) == 0) {
11358 35 : i21 = 48;
11359 35 : break;
11360 35 : }
11361 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11362 35 : i21 = 48;
11363 35 : break;
11364 35 : }
11365 35 : i5 = HEAP32[i9 >> 2] | 0;
11366 35 : if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11367 35 : HEAP32[i9 >> 2] = i5 + 1;
11368 35 : i21 = HEAPU8[i5] | 0;
11369 35 : i19 = 0;
11370 35 : } else {
11371 35 : i21 = ___shgetc(i8) | 0;
11372 35 : i19 = 0;
11373 35 : }
11374 35 : while (1) {
11375 35 : if ((i21 | 0) == 46) {
11376 35 : i13 = 70;
11377 35 : break;
11378 35 : } else if ((i21 | 0) != 48) {
11379 35 : i5 = 0;
11380 35 : i7 = 0;
11381 35 : i15 = 0;
11382 35 : i16 = 0;
11383 35 : i18 = 0;
11384 35 : i20 = 0;
11385 35 : d28 = 1.0;
11386 35 : i17 = 0;
11387 35 : d14 = 0.0;
11388 35 : break;
11389 35 : }
11390 35 : i5 = HEAP32[i9 >> 2] | 0;
11391 35 : if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11392 35 : HEAP32[i9 >> 2] = i5 + 1;
11393 35 : i21 = HEAPU8[i5] | 0;
11394 35 : i19 = 1;
11395 35 : continue;
11396 35 : } else {
11397 35 : i21 = ___shgetc(i8) | 0;
11398 35 : i19 = 1;
11399 35 : continue;
11400 35 : }
11401 35 : }
11402 35 : L66 : do {
11403 35 : if ((i13 | 0) == 70) {
11404 35 : i5 = HEAP32[i9 >> 2] | 0;
11405 35 : if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11406 35 : HEAP32[i9 >> 2] = i5 + 1;
11407 35 : i21 = HEAPU8[i5] | 0;
11408 35 : } else {
11409 35 : i21 = ___shgetc(i8) | 0;
11410 35 : }
11411 35 : if ((i21 | 0) == 48) {
11412 35 : i15 = -1;
11413 35 : i16 = -1;
11414 35 : while (1) {
11415 35 : i5 = HEAP32[i9 >> 2] | 0;
11416 35 : if (i5 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11417 35 : HEAP32[i9 >> 2] = i5 + 1;
11418 35 : i21 = HEAPU8[i5] | 0;
11419 35 : } else {
11420 35 : i21 = ___shgetc(i8) | 0;
11421 35 : }
11422 35 : if ((i21 | 0) != 48) {
11423 35 : i5 = 0;
11424 35 : i7 = 0;
11425 35 : i19 = 1;
11426 35 : i18 = 1;
11427 35 : i20 = 0;
11428 35 : d28 = 1.0;
11429 35 : i17 = 0;
11430 35 : d14 = 0.0;
11431 35 : break L66;
11432 35 : }
11433 35 : i29 = _i64Add(i15 | 0, i16 | 0, -1, -1) | 0;
11434 35 : i15 = i29;
11435 35 : i16 = tempRet0;
11436 35 : }
11437 35 : } else {
11438 35 : i5 = 0;
11439 35 : i7 = 0;
11440 35 : i15 = 0;
11441 35 : i16 = 0;
11442 35 : i18 = 1;
11443 35 : i20 = 0;
11444 35 : d28 = 1.0;
11445 35 : i17 = 0;
11446 35 : d14 = 0.0;
11447 35 : }
11448 35 : }
11449 35 : } while (0);
11450 35 : L79 : while (1) {
11451 35 : i24 = i21 + -48 | 0;
11452 35 : do {
11453 35 : if (!(i24 >>> 0 < 10)) {
11454 35 : i23 = i21 | 32;
11455 35 : i22 = (i21 | 0) == 46;
11456 35 : if (!((i23 + -97 | 0) >>> 0 < 6 | i22)) {
11457 35 : break L79;
11458 35 : }
11459 35 : if (i22) {
11460 35 : if ((i18 | 0) == 0) {
11461 35 : i15 = i7;
11462 35 : i16 = i5;
11463 35 : i18 = 1;
11464 35 : break;
11465 35 : } else {
11466 35 : i21 = 46;
11467 35 : break L79;
11468 35 : }
11469 35 : } else {
11470 35 : i24 = (i21 | 0) > 57 ? i23 + -87 | 0 : i24;
11471 35 : i13 = 84;
11472 35 : break;
11473 35 : }
11474 35 : } else {
11475 35 : i13 = 84;
11476 35 : }
11477 35 : } while (0);
11478 35 : if ((i13 | 0) == 84) {
11479 35 : i13 = 0;
11480 35 : do {
11481 35 : if (!((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8)) {
11482 35 : if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 14) {
11483 35 : d31 = d28 * .0625;
11484 35 : d30 = d31;
11485 35 : d14 = d14 + d31 * +(i24 | 0);
11486 35 : break;
11487 35 : }
11488 35 : if ((i24 | 0) != 0 & (i20 | 0) == 0) {
11489 35 : i20 = 1;
11490 35 : d30 = d28;
11491 35 : d14 = d14 + d28 * .5;
11492 35 : } else {
11493 35 : d30 = d28;
11494 35 : }
11495 35 : } else {
11496 35 : d30 = d28;
11497 35 : i17 = i24 + (i17 << 4) | 0;
11498 35 : }
11499 35 : } while (0);
11500 35 : i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
11501 35 : i5 = tempRet0;
11502 35 : i19 = 1;
11503 35 : d28 = d30;
11504 35 : }
11505 35 : i21 = HEAP32[i9 >> 2] | 0;
11506 35 : if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11507 35 : HEAP32[i9 >> 2] = i21 + 1;
11508 35 : i21 = HEAPU8[i21] | 0;
11509 35 : continue;
11510 35 : } else {
11511 35 : i21 = ___shgetc(i8) | 0;
11512 35 : continue;
11513 35 : }
11514 35 : }
11515 35 : if ((i19 | 0) == 0) {
11516 35 : i2 = (HEAP32[i10 >> 2] | 0) == 0;
11517 35 : if (!i2) {
11518 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11519 35 : }
11520 35 : if (!i12) {
11521 35 : if (!i2 ? (i6 = HEAP32[i9 >> 2] | 0, HEAP32[i9 >> 2] = i6 + -1, (i18 | 0) != 0) : 0) {
11522 35 : HEAP32[i9 >> 2] = i6 + -2;
11523 35 : }
11524 35 : } else {
11525 35 : ___shlim(i8, 0);
11526 35 : }
11527 35 : d31 = +(i4 | 0) * 0.0;
11528 35 : STACKTOP = i1;
11529 35 : return +d31;
11530 35 : }
11531 35 : i13 = (i18 | 0) == 0;
11532 35 : i6 = i13 ? i7 : i15;
11533 35 : i13 = i13 ? i5 : i16;
11534 35 : if ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8) {
11535 35 : do {
11536 35 : i17 = i17 << 4;
11537 35 : i7 = _i64Add(i7 | 0, i5 | 0, 1, 0) | 0;
11538 35 : i5 = tempRet0;
11539 35 : } while ((i5 | 0) < 0 | (i5 | 0) == 0 & i7 >>> 0 < 8);
11540 35 : }
11541 35 : do {
11542 35 : if ((i21 | 32 | 0) == 112) {
11543 35 : i7 = _scanexp(i8, i11) | 0;
11544 35 : i5 = tempRet0;
11545 35 : if ((i7 | 0) == 0 & (i5 | 0) == -2147483648) {
11546 35 : if (i12) {
11547 35 : ___shlim(i8, 0);
11548 35 : d31 = 0.0;
11549 35 : STACKTOP = i1;
11550 35 : return +d31;
11551 35 : } else {
11552 35 : if ((HEAP32[i10 >> 2] | 0) == 0) {
11553 35 : i7 = 0;
11554 35 : i5 = 0;
11555 35 : break;
11556 35 : }
11557 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11558 35 : i7 = 0;
11559 35 : i5 = 0;
11560 35 : break;
11561 35 : }
11562 35 : }
11563 35 : } else {
11564 35 : if ((HEAP32[i10 >> 2] | 0) == 0) {
11565 35 : i7 = 0;
11566 35 : i5 = 0;
11567 35 : } else {
11568 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11569 35 : i7 = 0;
11570 35 : i5 = 0;
11571 35 : }
11572 35 : }
11573 35 : } while (0);
11574 35 : i6 = _bitshift64Shl(i6 | 0, i13 | 0, 2) | 0;
11575 35 : i6 = _i64Add(i6 | 0, tempRet0 | 0, -32, -1) | 0;
11576 35 : i5 = _i64Add(i6 | 0, tempRet0 | 0, i7 | 0, i5 | 0) | 0;
11577 35 : i6 = tempRet0;
11578 35 : if ((i17 | 0) == 0) {
11579 35 : d31 = +(i4 | 0) * 0.0;
11580 35 : STACKTOP = i1;
11581 35 : return +d31;
11582 35 : }
11583 35 : if ((i6 | 0) > 0 | (i6 | 0) == 0 & i5 >>> 0 > (0 - i3 | 0) >>> 0) {
11584 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
11585 35 : d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
11586 35 : STACKTOP = i1;
11587 35 : return +d31;
11588 35 : }
11589 35 : i29 = i3 + -106 | 0;
11590 35 : i27 = ((i29 | 0) < 0) << 31 >> 31;
11591 35 : if ((i6 | 0) < (i27 | 0) | (i6 | 0) == (i27 | 0) & i5 >>> 0 < i29 >>> 0) {
11592 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
11593 35 : d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
11594 35 : STACKTOP = i1;
11595 35 : return +d31;
11596 35 : }
11597 35 : if ((i17 | 0) > -1) {
11598 35 : do {
11599 35 : i17 = i17 << 1;
11600 35 : if (!(d14 >= .5)) {
11601 35 : d28 = d14;
11602 35 : } else {
11603 35 : d28 = d14 + -1.0;
11604 35 : i17 = i17 | 1;
11605 35 : }
11606 35 : d14 = d14 + d28;
11607 35 : i5 = _i64Add(i5 | 0, i6 | 0, -1, -1) | 0;
11608 35 : i6 = tempRet0;
11609 35 : } while ((i17 | 0) > -1);
11610 35 : }
11611 35 : i3 = _i64Subtract(32, 0, i3 | 0, ((i3 | 0) < 0) << 31 >> 31 | 0) | 0;
11612 35 : i3 = _i64Add(i5 | 0, i6 | 0, i3 | 0, tempRet0 | 0) | 0;
11613 35 : i29 = tempRet0;
11614 35 : if (0 > (i29 | 0) | 0 == (i29 | 0) & i2 >>> 0 > i3 >>> 0) {
11615 35 : i2 = (i3 | 0) < 0 ? 0 : i3;
11616 35 : }
11617 35 : if ((i2 | 0) < 53) {
11618 35 : d28 = +(i4 | 0);
11619 35 : d30 = +_copysign(+(+_scalbn(1.0, 84 - i2 | 0)), +d28);
11620 35 : if ((i2 | 0) < 32 & d14 != 0.0) {
11621 35 : i29 = i17 & 1;
11622 35 : i17 = (i29 ^ 1) + i17 | 0;
11623 35 : d14 = (i29 | 0) == 0 ? 0.0 : d14;
11624 35 : }
11625 35 : } else {
11626 35 : d28 = +(i4 | 0);
11627 35 : d30 = 0.0;
11628 35 : }
11629 35 : d14 = d28 * d14 + (d30 + d28 * +(i17 >>> 0)) - d30;
11630 35 : if (!(d14 != 0.0)) {
11631 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
11632 35 : }
11633 35 : d31 = +_scalbnl(d14, i5);
11634 35 : STACKTOP = i1;
11635 35 : return +d31;
11636 35 : }
11637 35 : } while (0);
11638 35 : i7 = i3 + i2 | 0;
11639 35 : i6 = 0 - i7 | 0;
11640 35 : i20 = 0;
11641 35 : while (1) {
11642 35 : if ((i21 | 0) == 46) {
11643 35 : i13 = 139;
11644 35 : break;
11645 35 : } else if ((i21 | 0) != 48) {
11646 35 : i25 = 0;
11647 35 : i22 = 0;
11648 35 : i19 = 0;
11649 35 : break;
11650 35 : }
11651 35 : i15 = HEAP32[i9 >> 2] | 0;
11652 35 : if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11653 35 : HEAP32[i9 >> 2] = i15 + 1;
11654 35 : i21 = HEAPU8[i15] | 0;
11655 35 : i20 = 1;
11656 35 : continue;
11657 35 : } else {
11658 35 : i21 = ___shgetc(i8) | 0;
11659 35 : i20 = 1;
11660 35 : continue;
11661 35 : }
11662 35 : }
11663 35 : L168 : do {
11664 35 : if ((i13 | 0) == 139) {
11665 35 : i15 = HEAP32[i9 >> 2] | 0;
11666 35 : if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11667 35 : HEAP32[i9 >> 2] = i15 + 1;
11668 35 : i21 = HEAPU8[i15] | 0;
11669 35 : } else {
11670 35 : i21 = ___shgetc(i8) | 0;
11671 35 : }
11672 35 : if ((i21 | 0) == 48) {
11673 35 : i25 = -1;
11674 35 : i22 = -1;
11675 35 : while (1) {
11676 35 : i15 = HEAP32[i9 >> 2] | 0;
11677 35 : if (i15 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11678 35 : HEAP32[i9 >> 2] = i15 + 1;
11679 35 : i21 = HEAPU8[i15] | 0;
11680 35 : } else {
11681 35 : i21 = ___shgetc(i8) | 0;
11682 35 : }
11683 35 : if ((i21 | 0) != 48) {
11684 35 : i20 = 1;
11685 35 : i19 = 1;
11686 35 : break L168;
11687 35 : }
11688 35 : i29 = _i64Add(i25 | 0, i22 | 0, -1, -1) | 0;
11689 35 : i25 = i29;
11690 35 : i22 = tempRet0;
11691 35 : }
11692 35 : } else {
11693 35 : i25 = 0;
11694 35 : i22 = 0;
11695 35 : i19 = 1;
11696 35 : }
11697 35 : }
11698 35 : } while (0);
11699 35 : HEAP32[i5 >> 2] = 0;
11700 35 : i26 = i21 + -48 | 0;
11701 35 : i27 = (i21 | 0) == 46;
11702 35 : L182 : do {
11703 35 : if (i26 >>> 0 < 10 | i27) {
11704 35 : i15 = i5 + 496 | 0;
11705 35 : i24 = 0;
11706 35 : i23 = 0;
11707 35 : i18 = 0;
11708 35 : i17 = 0;
11709 35 : i16 = 0;
11710 35 : while (1) {
11711 35 : do {
11712 35 : if (i27) {
11713 35 : if ((i19 | 0) == 0) {
11714 35 : i25 = i24;
11715 35 : i22 = i23;
11716 35 : i19 = 1;
11717 35 : } else {
11718 35 : break L182;
11719 35 : }
11720 35 : } else {
11721 35 : i27 = _i64Add(i24 | 0, i23 | 0, 1, 0) | 0;
11722 35 : i23 = tempRet0;
11723 35 : i29 = (i21 | 0) != 48;
11724 35 : if ((i17 | 0) >= 125) {
11725 35 : if (!i29) {
11726 35 : i24 = i27;
11727 35 : break;
11728 35 : }
11729 35 : HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
11730 35 : i24 = i27;
11731 35 : break;
11732 35 : }
11733 35 : i20 = i5 + (i17 << 2) | 0;
11734 35 : if ((i18 | 0) != 0) {
11735 35 : i26 = i21 + -48 + ((HEAP32[i20 >> 2] | 0) * 10 | 0) | 0;
11736 35 : }
11737 35 : HEAP32[i20 >> 2] = i26;
11738 35 : i18 = i18 + 1 | 0;
11739 35 : i21 = (i18 | 0) == 9;
11740 35 : i24 = i27;
11741 35 : i20 = 1;
11742 35 : i18 = i21 ? 0 : i18;
11743 35 : i17 = (i21 & 1) + i17 | 0;
11744 35 : i16 = i29 ? i27 : i16;
11745 35 : }
11746 35 : } while (0);
11747 35 : i21 = HEAP32[i9 >> 2] | 0;
11748 35 : if (i21 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
11749 35 : HEAP32[i9 >> 2] = i21 + 1;
11750 35 : i21 = HEAPU8[i21] | 0;
11751 35 : } else {
11752 35 : i21 = ___shgetc(i8) | 0;
11753 35 : }
11754 35 : i26 = i21 + -48 | 0;
11755 35 : i27 = (i21 | 0) == 46;
11756 35 : if (!(i26 >>> 0 < 10 | i27)) {
11757 35 : i13 = 162;
11758 35 : break;
11759 35 : }
11760 35 : }
11761 35 : } else {
11762 35 : i24 = 0;
11763 35 : i23 = 0;
11764 35 : i18 = 0;
11765 35 : i17 = 0;
11766 35 : i16 = 0;
11767 35 : i13 = 162;
11768 35 : }
11769 35 : } while (0);
11770 35 : if ((i13 | 0) == 162) {
11771 35 : i13 = (i19 | 0) == 0;
11772 35 : i25 = i13 ? i24 : i25;
11773 35 : i22 = i13 ? i23 : i22;
11774 35 : }
11775 35 : i13 = (i20 | 0) != 0;
11776 35 : if (i13 ? (i21 | 32 | 0) == 101 : 0) {
11777 35 : i15 = _scanexp(i8, i11) | 0;
11778 35 : i11 = tempRet0;
11779 35 : do {
11780 35 : if ((i15 | 0) == 0 & (i11 | 0) == -2147483648) {
11781 35 : if (i12) {
11782 35 : ___shlim(i8, 0);
11783 35 : d31 = 0.0;
11784 35 : STACKTOP = i1;
11785 35 : return +d31;
11786 35 : } else {
11787 35 : if ((HEAP32[i10 >> 2] | 0) == 0) {
11788 35 : i15 = 0;
11789 35 : i11 = 0;
11790 35 : break;
11791 35 : }
11792 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11793 35 : i15 = 0;
11794 35 : i11 = 0;
11795 35 : break;
11796 35 : }
11797 35 : }
11798 35 : } while (0);
11799 35 : i9 = _i64Add(i15 | 0, i11 | 0, i25 | 0, i22 | 0) | 0;
11800 35 : i22 = tempRet0;
11801 35 : } else {
11802 35 : if ((i21 | 0) > -1 ? (HEAP32[i10 >> 2] | 0) != 0 : 0) {
11803 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
11804 35 : i9 = i25;
11805 35 : } else {
11806 35 : i9 = i25;
11807 35 : }
11808 35 : }
11809 35 : if (!i13) {
11810 35 : HEAP32[(___errno_location() | 0) >> 2] = 22;
11811 35 : ___shlim(i8, 0);
11812 35 : d31 = 0.0;
11813 35 : STACKTOP = i1;
11814 35 : return +d31;
11815 35 : }
11816 35 : i8 = HEAP32[i5 >> 2] | 0;
11817 35 : if ((i8 | 0) == 0) {
11818 35 : d31 = +(i4 | 0) * 0.0;
11819 35 : STACKTOP = i1;
11820 35 : return +d31;
11821 35 : }
11822 35 : do {
11823 35 : if ((i9 | 0) == (i24 | 0) & (i22 | 0) == (i23 | 0) & ((i23 | 0) < 0 | (i23 | 0) == 0 & i24 >>> 0 < 10)) {
11824 35 : if (!(i2 >>> 0 > 30) ? (i8 >>> i2 | 0) != 0 : 0) {
11825 35 : break;
11826 35 : }
11827 35 : d31 = +(i4 | 0) * +(i8 >>> 0);
11828 35 : STACKTOP = i1;
11829 35 : return +d31;
11830 35 : }
11831 35 : } while (0);
11832 35 : i29 = (i3 | 0) / -2 | 0;
11833 35 : i27 = ((i29 | 0) < 0) << 31 >> 31;
11834 35 : if ((i22 | 0) > (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 > i29 >>> 0) {
11835 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
11836 35 : d31 = +(i4 | 0) * 1.7976931348623157e+308 * 1.7976931348623157e+308;
11837 35 : STACKTOP = i1;
11838 35 : return +d31;
11839 35 : }
11840 35 : i29 = i3 + -106 | 0;
11841 35 : i27 = ((i29 | 0) < 0) << 31 >> 31;
11842 35 : if ((i22 | 0) < (i27 | 0) | (i22 | 0) == (i27 | 0) & i9 >>> 0 < i29 >>> 0) {
11843 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
11844 35 : d31 = +(i4 | 0) * 2.2250738585072014e-308 * 2.2250738585072014e-308;
11845 35 : STACKTOP = i1;
11846 35 : return +d31;
11847 35 : }
11848 35 : if ((i18 | 0) != 0) {
11849 35 : if ((i18 | 0) < 9) {
11850 35 : i8 = i5 + (i17 << 2) | 0;
11851 35 : i10 = HEAP32[i8 >> 2] | 0;
11852 35 : do {
11853 35 : i10 = i10 * 10 | 0;
11854 35 : i18 = i18 + 1 | 0;
11855 35 : } while ((i18 | 0) != 9);
11856 35 : HEAP32[i8 >> 2] = i10;
11857 35 : }
11858 35 : i17 = i17 + 1 | 0;
11859 35 : }
11860 35 : do {
11861 35 : if ((i16 | 0) < 9 ? (i16 | 0) <= (i9 | 0) & (i9 | 0) < 18 : 0) {
11862 35 : if ((i9 | 0) == 9) {
11863 35 : d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0);
11864 35 : STACKTOP = i1;
11865 35 : return +d31;
11866 35 : }
11867 35 : if ((i9 | 0) < 9) {
11868 35 : d31 = +(i4 | 0) * +((HEAP32[i5 >> 2] | 0) >>> 0) / +(HEAP32[13440 + (8 - i9 << 2) >> 2] | 0);
11869 35 : STACKTOP = i1;
11870 35 : return +d31;
11871 35 : }
11872 35 : i10 = i2 + 27 + (Math_imul(i9, -3) | 0) | 0;
11873 35 : i8 = HEAP32[i5 >> 2] | 0;
11874 35 : if ((i10 | 0) <= 30 ? (i8 >>> i10 | 0) != 0 : 0) {
11875 35 : break;
11876 35 : }
11877 35 : d31 = +(i4 | 0) * +(i8 >>> 0) * +(HEAP32[13440 + (i9 + -10 << 2) >> 2] | 0);
11878 35 : STACKTOP = i1;
11879 35 : return +d31;
11880 35 : }
11881 35 : } while (0);
11882 35 : i8 = (i9 | 0) % 9 | 0;
11883 35 : if ((i8 | 0) == 0) {
11884 35 : i8 = 0;
11885 35 : i10 = 0;
11886 35 : } else {
11887 35 : i11 = (i9 | 0) > -1 ? i8 : i8 + 9 | 0;
11888 35 : i12 = HEAP32[13440 + (8 - i11 << 2) >> 2] | 0;
11889 35 : if ((i17 | 0) != 0) {
11890 35 : i10 = 1e9 / (i12 | 0) | 0;
11891 35 : i8 = 0;
11892 35 : i16 = 0;
11893 35 : i15 = 0;
11894 35 : while (1) {
11895 35 : i27 = i5 + (i15 << 2) | 0;
11896 35 : i13 = HEAP32[i27 >> 2] | 0;
11897 35 : i29 = ((i13 >>> 0) / (i12 >>> 0) | 0) + i16 | 0;
11898 35 : HEAP32[i27 >> 2] = i29;
11899 35 : i16 = Math_imul((i13 >>> 0) % (i12 >>> 0) | 0, i10) | 0;
11900 35 : i13 = i15 + 1 | 0;
11901 35 : if ((i15 | 0) == (i8 | 0) & (i29 | 0) == 0) {
11902 35 : i8 = i13 & 127;
11903 35 : i9 = i9 + -9 | 0;
11904 35 : }
11905 35 : if ((i13 | 0) == (i17 | 0)) {
11906 35 : break;
11907 35 : } else {
11908 35 : i15 = i13;
11909 35 : }
11910 35 : }
11911 35 : if ((i16 | 0) != 0) {
11912 35 : HEAP32[i5 + (i17 << 2) >> 2] = i16;
11913 35 : i17 = i17 + 1 | 0;
11914 35 : }
11915 35 : } else {
11916 35 : i8 = 0;
11917 35 : i17 = 0;
11918 35 : }
11919 35 : i10 = 0;
11920 35 : i9 = 9 - i11 + i9 | 0;
11921 35 : }
11922 35 : L280 : while (1) {
11923 35 : i11 = i5 + (i8 << 2) | 0;
11924 35 : if ((i9 | 0) < 18) {
11925 35 : do {
11926 35 : i13 = 0;
11927 35 : i11 = i17 + 127 | 0;
11928 35 : while (1) {
11929 35 : i11 = i11 & 127;
11930 35 : i12 = i5 + (i11 << 2) | 0;
11931 35 : i15 = _bitshift64Shl(HEAP32[i12 >> 2] | 0, 0, 29) | 0;
11932 35 : i15 = _i64Add(i15 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
11933 35 : i13 = tempRet0;
11934 35 : if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i15 >>> 0 > 1e9) {
11935 35 : i29 = ___udivdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
11936 35 : i15 = ___uremdi3(i15 | 0, i13 | 0, 1e9, 0) | 0;
11937 35 : i13 = i29;
11938 35 : } else {
11939 35 : i13 = 0;
11940 35 : }
11941 35 : HEAP32[i12 >> 2] = i15;
11942 35 : i12 = (i11 | 0) == (i8 | 0);
11943 35 : if (!((i11 | 0) != (i17 + 127 & 127 | 0) | i12)) {
11944 35 : i17 = (i15 | 0) == 0 ? i11 : i17;
11945 35 : }
11946 35 : if (i12) {
11947 35 : break;
11948 35 : } else {
11949 35 : i11 = i11 + -1 | 0;
11950 35 : }
11951 35 : }
11952 35 : i10 = i10 + -29 | 0;
11953 35 : } while ((i13 | 0) == 0);
11954 35 : } else {
11955 35 : if ((i9 | 0) != 18) {
11956 35 : break;
11957 35 : }
11958 35 : do {
11959 35 : if (!((HEAP32[i11 >> 2] | 0) >>> 0 < 9007199)) {
11960 35 : i9 = 18;
11961 35 : break L280;
11962 35 : }
11963 35 : i13 = 0;
11964 35 : i12 = i17 + 127 | 0;
11965 35 : while (1) {
11966 35 : i12 = i12 & 127;
11967 35 : i15 = i5 + (i12 << 2) | 0;
11968 35 : i16 = _bitshift64Shl(HEAP32[i15 >> 2] | 0, 0, 29) | 0;
11969 35 : i16 = _i64Add(i16 | 0, tempRet0 | 0, i13 | 0, 0) | 0;
11970 35 : i13 = tempRet0;
11971 35 : if (i13 >>> 0 > 0 | (i13 | 0) == 0 & i16 >>> 0 > 1e9) {
11972 35 : i29 = ___udivdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
11973 35 : i16 = ___uremdi3(i16 | 0, i13 | 0, 1e9, 0) | 0;
11974 35 : i13 = i29;
11975 35 : } else {
11976 35 : i13 = 0;
11977 35 : }
11978 35 : HEAP32[i15 >> 2] = i16;
11979 35 : i15 = (i12 | 0) == (i8 | 0);
11980 35 : if (!((i12 | 0) != (i17 + 127 & 127 | 0) | i15)) {
11981 35 : i17 = (i16 | 0) == 0 ? i12 : i17;
11982 35 : }
11983 35 : if (i15) {
11984 35 : break;
11985 35 : } else {
11986 35 : i12 = i12 + -1 | 0;
11987 35 : }
11988 35 : }
11989 35 : i10 = i10 + -29 | 0;
11990 35 : } while ((i13 | 0) == 0);
11991 35 : }
11992 35 : i8 = i8 + 127 & 127;
11993 35 : if ((i8 | 0) == (i17 | 0)) {
11994 35 : i29 = i17 + 127 & 127;
11995 35 : i17 = i5 + ((i17 + 126 & 127) << 2) | 0;
11996 35 : HEAP32[i17 >> 2] = HEAP32[i17 >> 2] | HEAP32[i5 + (i29 << 2) >> 2];
11997 35 : i17 = i29;
11998 35 : }
11999 35 : HEAP32[i5 + (i8 << 2) >> 2] = i13;
12000 35 : i9 = i9 + 9 | 0;
12001 35 : }
12002 35 : L311 : while (1) {
12003 35 : i11 = i17 + 1 & 127;
12004 35 : i12 = i5 + ((i17 + 127 & 127) << 2) | 0;
12005 35 : while (1) {
12006 35 : i15 = (i9 | 0) == 18;
12007 35 : i13 = (i9 | 0) > 27 ? 9 : 1;
12008 35 : while (1) {
12009 35 : i16 = 0;
12010 35 : while (1) {
12011 35 : i18 = i16 + i8 & 127;
12012 35 : if ((i18 | 0) == (i17 | 0)) {
12013 35 : i16 = 2;
12014 35 : break;
12015 35 : }
12016 35 : i18 = HEAP32[i5 + (i18 << 2) >> 2] | 0;
12017 35 : i19 = HEAP32[13432 + (i16 << 2) >> 2] | 0;
12018 35 : if (i18 >>> 0 < i19 >>> 0) {
12019 35 : i16 = 2;
12020 35 : break;
12021 35 : }
12022 35 : i20 = i16 + 1 | 0;
12023 35 : if (i18 >>> 0 > i19 >>> 0) {
12024 35 : break;
12025 35 : }
12026 35 : if ((i20 | 0) < 2) {
12027 35 : i16 = i20;
12028 35 : } else {
12029 35 : i16 = i20;
12030 35 : break;
12031 35 : }
12032 35 : }
12033 35 : if ((i16 | 0) == 2 & i15) {
12034 35 : break L311;
12035 35 : }
12036 35 : i10 = i13 + i10 | 0;
12037 35 : if ((i8 | 0) == (i17 | 0)) {
12038 35 : i8 = i17;
12039 35 : } else {
12040 35 : break;
12041 35 : }
12042 35 : }
12043 35 : i15 = (1 << i13) + -1 | 0;
12044 35 : i19 = 1e9 >>> i13;
12045 35 : i18 = i8;
12046 35 : i16 = 0;
12047 35 : do {
12048 35 : i27 = i5 + (i8 << 2) | 0;
12049 35 : i29 = HEAP32[i27 >> 2] | 0;
12050 35 : i20 = (i29 >>> i13) + i16 | 0;
12051 35 : HEAP32[i27 >> 2] = i20;
12052 35 : i16 = Math_imul(i29 & i15, i19) | 0;
12053 35 : i20 = (i8 | 0) == (i18 | 0) & (i20 | 0) == 0;
12054 35 : i8 = i8 + 1 & 127;
12055 35 : i9 = i20 ? i9 + -9 | 0 : i9;
12056 35 : i18 = i20 ? i8 : i18;
12057 35 : } while ((i8 | 0) != (i17 | 0));
12058 35 : if ((i16 | 0) == 0) {
12059 35 : i8 = i18;
12060 35 : continue;
12061 35 : }
12062 35 : if ((i11 | 0) != (i18 | 0)) {
12063 35 : break;
12064 35 : }
12065 35 : HEAP32[i12 >> 2] = HEAP32[i12 >> 2] | 1;
12066 35 : i8 = i18;
12067 35 : }
12068 35 : HEAP32[i5 + (i17 << 2) >> 2] = i16;
12069 35 : i8 = i18;
12070 35 : i17 = i11;
12071 35 : }
12072 35 : i9 = i8 & 127;
12073 35 : if ((i9 | 0) == (i17 | 0)) {
12074 35 : HEAP32[i5 + (i11 + -1 << 2) >> 2] = 0;
12075 35 : i17 = i11;
12076 35 : }
12077 35 : d28 = +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0);
12078 35 : i9 = i8 + 1 & 127;
12079 35 : if ((i9 | 0) == (i17 | 0)) {
12080 35 : i17 = i17 + 1 & 127;
12081 35 : HEAP32[i5 + (i17 + -1 << 2) >> 2] = 0;
12082 35 : }
12083 35 : d14 = +(i4 | 0);
12084 35 : d30 = d14 * (d28 * 1.0e9 + +((HEAP32[i5 + (i9 << 2) >> 2] | 0) >>> 0));
12085 35 : i4 = i10 + 53 | 0;
12086 35 : i3 = i4 - i3 | 0;
12087 35 : if ((i3 | 0) < (i2 | 0)) {
12088 35 : i2 = (i3 | 0) < 0 ? 0 : i3;
12089 35 : i9 = 1;
12090 35 : } else {
12091 35 : i9 = 0;
12092 35 : }
12093 35 : if ((i2 | 0) < 53) {
12094 35 : d33 = +_copysign(+(+_scalbn(1.0, 105 - i2 | 0)), +d30);
12095 35 : d32 = +_fmod(+d30, +(+_scalbn(1.0, 53 - i2 | 0)));
12096 35 : d28 = d33;
12097 35 : d31 = d32;
12098 35 : d30 = d33 + (d30 - d32);
12099 35 : } else {
12100 35 : d28 = 0.0;
12101 35 : d31 = 0.0;
12102 35 : }
12103 35 : i11 = i8 + 2 & 127;
12104 35 : if ((i11 | 0) != (i17 | 0)) {
12105 35 : i5 = HEAP32[i5 + (i11 << 2) >> 2] | 0;
12106 35 : do {
12107 35 : if (!(i5 >>> 0 < 5e8)) {
12108 35 : if (i5 >>> 0 > 5e8) {
12109 35 : d31 = d14 * .75 + d31;
12110 35 : break;
12111 35 : }
12112 35 : if ((i8 + 3 & 127 | 0) == (i17 | 0)) {
12113 35 : d31 = d14 * .5 + d31;
12114 35 : break;
12115 35 : } else {
12116 35 : d31 = d14 * .75 + d31;
12117 35 : break;
12118 35 : }
12119 35 : } else {
12120 35 : if ((i5 | 0) == 0 ? (i8 + 3 & 127 | 0) == (i17 | 0) : 0) {
12121 35 : break;
12122 35 : }
12123 35 : d31 = d14 * .25 + d31;
12124 35 : }
12125 35 : } while (0);
12126 35 : if ((53 - i2 | 0) > 1 ? !(+_fmod(+d31, 1.0) != 0.0) : 0) {
12127 35 : d31 = d31 + 1.0;
12128 35 : }
12129 35 : }
12130 35 : d14 = d30 + d31 - d28;
12131 35 : do {
12132 35 : if ((i4 & 2147483647 | 0) > (-2 - i7 | 0)) {
12133 35 : if (+Math_abs(+d14) >= 9007199254740992.0) {
12134 35 : i9 = (i9 | 0) != 0 & (i2 | 0) == (i3 | 0) ? 0 : i9;
12135 35 : i10 = i10 + 1 | 0;
12136 35 : d14 = d14 * .5;
12137 35 : }
12138 35 : if ((i10 + 50 | 0) <= (i6 | 0) ? !((i9 | 0) != 0 & d31 != 0.0) : 0) {
12139 35 : break;
12140 35 : }
12141 35 : HEAP32[(___errno_location() | 0) >> 2] = 34;
12142 35 : }
12143 35 : } while (0);
12144 35 : d33 = +_scalbnl(d14, i10);
12145 35 : STACKTOP = i1;
12146 35 : return +d33;
12147 35 : } else if ((i7 | 0) == 3) {
12148 35 : i2 = HEAP32[i9 >> 2] | 0;
12149 35 : if (i2 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
12150 35 : HEAP32[i9 >> 2] = i2 + 1;
12151 35 : i2 = HEAPU8[i2] | 0;
12152 35 : } else {
12153 35 : i2 = ___shgetc(i8) | 0;
12154 35 : }
12155 35 : if ((i2 | 0) == 40) {
12156 35 : i2 = 1;
12157 35 : } else {
12158 35 : if ((HEAP32[i10 >> 2] | 0) == 0) {
12159 35 : d33 = nan;
12160 35 : STACKTOP = i1;
12161 35 : return +d33;
12162 35 : }
12163 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12164 35 : d33 = nan;
12165 35 : STACKTOP = i1;
12166 35 : return +d33;
12167 35 : }
12168 35 : while (1) {
12169 35 : i3 = HEAP32[i9 >> 2] | 0;
12170 35 : if (i3 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0) {
12171 35 : HEAP32[i9 >> 2] = i3 + 1;
12172 35 : i3 = HEAPU8[i3] | 0;
12173 35 : } else {
12174 35 : i3 = ___shgetc(i8) | 0;
12175 35 : }
12176 35 : if (!((i3 + -48 | 0) >>> 0 < 10 | (i3 + -65 | 0) >>> 0 < 26) ? !((i3 + -97 | 0) >>> 0 < 26 | (i3 | 0) == 95) : 0) {
12177 35 : break;
12178 35 : }
12179 35 : i2 = i2 + 1 | 0;
12180 35 : }
12181 35 : if ((i3 | 0) == 41) {
12182 35 : d33 = nan;
12183 35 : STACKTOP = i1;
12184 35 : return +d33;
12185 35 : }
12186 35 : i3 = (HEAP32[i10 >> 2] | 0) == 0;
12187 35 : if (!i3) {
12188 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12189 35 : }
12190 35 : if (i12) {
12191 35 : HEAP32[(___errno_location() | 0) >> 2] = 22;
12192 35 : ___shlim(i8, 0);
12193 35 : d33 = 0.0;
12194 35 : STACKTOP = i1;
12195 35 : return +d33;
12196 35 : }
12197 35 : if ((i2 | 0) == 0 | i3) {
12198 35 : d33 = nan;
12199 35 : STACKTOP = i1;
12200 35 : return +d33;
12201 35 : }
12202 35 : while (1) {
12203 35 : i2 = i2 + -1 | 0;
12204 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12205 35 : if ((i2 | 0) == 0) {
12206 35 : d14 = nan;
12207 35 : break;
12208 35 : }
12209 35 : }
12210 35 : STACKTOP = i1;
12211 35 : return +d14;
12212 35 : } else {
12213 35 : if ((HEAP32[i10 >> 2] | 0) != 0) {
12214 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12215 35 : }
12216 35 : HEAP32[(___errno_location() | 0) >> 2] = 22;
12217 35 : ___shlim(i8, 0);
12218 35 : d33 = 0.0;
12219 35 : STACKTOP = i1;
12220 35 : return +d33;
12221 35 : }
12222 35 : }
12223 35 : } while (0);
12224 35 : if ((i13 | 0) == 23) {
12225 35 : i2 = (HEAP32[i10 >> 2] | 0) == 0;
12226 35 : if (!i2) {
12227 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12228 35 : }
12229 35 : if (!(i7 >>> 0 < 4 | (i11 | 0) == 0 | i2)) {
12230 35 : do {
12231 35 : HEAP32[i9 >> 2] = (HEAP32[i9 >> 2] | 0) + -1;
12232 35 : i7 = i7 + -1 | 0;
12233 35 : } while (i7 >>> 0 > 3);
12234 35 : }
12235 35 : }
12236 35 : d33 = +(i4 | 0) * inf;
12237 35 : STACKTOP = i1;
12238 35 : return +d33;
12239 35 : }
12240 35 : function _statement(i4) {
12241 35 : i4 = i4 | 0;
12242 35 : var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0;
12243 35 : i2 = STACKTOP;
12244 35 : STACKTOP = STACKTOP + 160 | 0;
12245 35 : i8 = i2 + 120 | 0;
12246 35 : i24 = i2 + 96 | 0;
12247 35 : i15 = i2 + 72 | 0;
12248 35 : i25 = i2 + 48 | 0;
12249 35 : i20 = i2 + 24 | 0;
12250 35 : i21 = i2;
12251 35 : i19 = i4 + 4 | 0;
12252 35 : i6 = HEAP32[i19 >> 2] | 0;
12253 35 : i3 = i4 + 48 | 0;
12254 35 : i9 = HEAP32[i3 >> 2] | 0;
12255 35 : i1 = i4 + 52 | 0;
12256 35 : i26 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
12257 35 : i27 = (HEAP16[i26 >> 1] | 0) + 1 << 16 >> 16;
12258 35 : HEAP16[i26 >> 1] = i27;
12259 35 : if ((i27 & 65535) > 200) {
12260 35 : i27 = i9 + 12 | 0;
12261 35 : i26 = HEAP32[(HEAP32[i27 >> 2] | 0) + 52 >> 2] | 0;
12262 35 : i5 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
12263 35 : if ((i5 | 0) == 0) {
12264 35 : i29 = 6552;
12265 35 : HEAP32[i8 >> 2] = 6360;
12266 35 : i28 = i8 + 4 | 0;
12267 35 : HEAP32[i28 >> 2] = 200;
12268 35 : i28 = i8 + 8 | 0;
12269 35 : HEAP32[i28 >> 2] = i29;
12270 35 : i28 = _luaO_pushfstring(i26, 6592, i8) | 0;
12271 35 : i29 = HEAP32[i27 >> 2] | 0;
12272 35 : _luaX_syntaxerror(i29, i28);
12273 35 : }
12274 35 : HEAP32[i8 >> 2] = i5;
12275 35 : i28 = _luaO_pushfstring(i26, 6568, i8) | 0;
12276 35 : HEAP32[i8 >> 2] = 6360;
12277 35 : i29 = i8 + 4 | 0;
12278 35 : HEAP32[i29 >> 2] = 200;
12279 35 : i29 = i8 + 8 | 0;
12280 35 : HEAP32[i29 >> 2] = i28;
12281 35 : i29 = _luaO_pushfstring(i26, 6592, i8) | 0;
12282 35 : i28 = HEAP32[i27 >> 2] | 0;
12283 35 : _luaX_syntaxerror(i28, i29);
12284 35 : }
12285 35 : i5 = i4 + 16 | 0;
12286 35 : L8 : do {
12287 35 : switch (HEAP32[i5 >> 2] | 0) {
12288 35 : case 59:
12289 35 : {
12290 35 : _luaX_next(i4);
12291 35 : break;
12292 35 : }
12293 35 : case 267:
12294 35 : {
12295 35 : HEAP32[i21 >> 2] = -1;
12296 35 : _test_then_block(i4, i21);
12297 35 : while (1) {
12298 35 : i8 = HEAP32[i5 >> 2] | 0;
12299 35 : if ((i8 | 0) == 260) {
12300 35 : i7 = 10;
12301 35 : break;
12302 35 : } else if ((i8 | 0) != 261) {
12303 35 : break;
12304 35 : }
12305 35 : _test_then_block(i4, i21);
12306 35 : }
12307 35 : if ((i7 | 0) == 10) {
12308 35 : _luaX_next(i4);
12309 35 : i7 = HEAP32[i3 >> 2] | 0;
12310 35 : HEAP8[i20 + 10 | 0] = 0;
12311 35 : HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
12312 35 : i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
12313 35 : HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12314 35 : HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12315 35 : HEAP8[i20 + 9 | 0] = 0;
12316 35 : i29 = i7 + 16 | 0;
12317 35 : HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
12318 35 : HEAP32[i29 >> 2] = i20;
12319 35 : L16 : do {
12320 35 : i8 = HEAP32[i5 >> 2] | 0;
12321 35 : switch (i8 | 0) {
12322 35 : case 277:
12323 35 : case 286:
12324 35 : case 262:
12325 35 : case 261:
12326 35 : case 260:
12327 35 : {
12328 35 : break L16;
12329 35 : }
12330 35 : default:
12331 35 : {}
12332 35 : }
12333 35 : _statement(i4);
12334 35 : } while ((i8 | 0) != 274);
12335 35 : _leaveblock(i7);
12336 35 : }
12337 35 : _check_match(i4, 262, 267, i6);
12338 35 : _luaK_patchtohere(i9, HEAP32[i21 >> 2] | 0);
12339 35 : break;
12340 35 : }
12341 35 : case 259:
12342 35 : {
12343 35 : _luaX_next(i4);
12344 35 : i7 = HEAP32[i3 >> 2] | 0;
12345 35 : HEAP8[i20 + 10 | 0] = 0;
12346 35 : HEAP8[i20 + 8 | 0] = HEAP8[i7 + 46 | 0] | 0;
12347 35 : i29 = HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] | 0;
12348 35 : HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12349 35 : HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12350 35 : HEAP8[i20 + 9 | 0] = 0;
12351 35 : i29 = i7 + 16 | 0;
12352 35 : HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
12353 35 : HEAP32[i29 >> 2] = i20;
12354 35 : L22 : do {
12355 35 : i8 = HEAP32[i5 >> 2] | 0;
12356 35 : switch (i8 | 0) {
12357 35 : case 277:
12358 35 : case 286:
12359 35 : case 262:
12360 35 : case 261:
12361 35 : case 260:
12362 35 : {
12363 35 : break L22;
12364 35 : }
12365 35 : default:
12366 35 : {}
12367 35 : }
12368 35 : _statement(i4);
12369 35 : } while ((i8 | 0) != 274);
12370 35 : _leaveblock(i7);
12371 35 : _check_match(i4, 262, 259, i6);
12372 35 : break;
12373 35 : }
12374 35 : case 269:
12375 35 : {
12376 35 : _luaX_next(i4);
12377 35 : i6 = HEAP32[i5 >> 2] | 0;
12378 35 : if ((i6 | 0) == 265) {
12379 35 : _luaX_next(i4);
12380 35 : i7 = HEAP32[i3 >> 2] | 0;
12381 35 : if ((HEAP32[i5 >> 2] | 0) == 288) {
12382 35 : i29 = HEAP32[i4 + 24 >> 2] | 0;
12383 35 : _luaX_next(i4);
12384 35 : _new_localvar(i4, i29);
12385 35 : i29 = HEAP32[i3 >> 2] | 0;
12386 35 : i27 = i29 + 46 | 0;
12387 35 : i28 = (HEAPU8[i27] | 0) + 1 | 0;
12388 35 : HEAP8[i27] = i28;
12389 35 : HEAP32[(HEAP32[(HEAP32[i29 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i29 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i28 & 255) + -1 + (HEAP32[i29 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i29 + 20 >> 2];
12390 35 : _body(i4, i25, 0, HEAP32[i19 >> 2] | 0);
12391 35 : HEAP32[(HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i7 + 40 >> 2] | 0) + (HEAP32[i25 + 8 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i7 + 20 >> 2];
12392 35 : break L8;
12393 35 : } else {
12394 35 : _error_expected(i4, 288);
12395 35 : }
12396 35 : }
12397 35 : if ((i6 | 0) != 288) {
12398 35 : _error_expected(i4, 288);
12399 35 : }
12400 35 : i7 = i4 + 24 | 0;
12401 35 : i6 = 1;
12402 35 : while (1) {
12403 35 : i8 = HEAP32[i7 >> 2] | 0;
12404 35 : _luaX_next(i4);
12405 35 : _new_localvar(i4, i8);
12406 35 : i8 = HEAP32[i5 >> 2] | 0;
12407 35 : if ((i8 | 0) == 61) {
12408 35 : i7 = 81;
12409 35 : break;
12410 35 : } else if ((i8 | 0) != 44) {
12411 35 : i7 = 83;
12412 35 : break;
12413 35 : }
12414 35 : _luaX_next(i4);
12415 35 : if ((HEAP32[i5 >> 2] | 0) == 288) {
12416 35 : i6 = i6 + 1 | 0;
12417 35 : } else {
12418 35 : i7 = 78;
12419 35 : break;
12420 35 : }
12421 35 : }
12422 35 : do {
12423 35 : if ((i7 | 0) == 78) {
12424 35 : _error_expected(i4, 288);
12425 35 : } else if ((i7 | 0) == 81) {
12426 35 : _luaX_next(i4);
12427 35 : _subexpr(i4, i15, 0) | 0;
12428 35 : if ((HEAP32[i5 >> 2] | 0) == 44) {
12429 35 : i8 = 1;
12430 35 : do {
12431 35 : _luaX_next(i4);
12432 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i15);
12433 35 : _subexpr(i4, i15, 0) | 0;
12434 35 : i8 = i8 + 1 | 0;
12435 35 : } while ((HEAP32[i5 >> 2] | 0) == 44);
12436 35 : } else {
12437 35 : i8 = 1;
12438 35 : }
12439 35 : i5 = HEAP32[i15 >> 2] | 0;
12440 35 : i4 = HEAP32[i3 >> 2] | 0;
12441 35 : i8 = i6 - i8 | 0;
12442 35 : if ((i5 | 0) == 0) {
12443 35 : i17 = i8;
12444 35 : i18 = i4;
12445 35 : i7 = 88;
12446 35 : break;
12447 35 : } else if (!((i5 | 0) == 13 | (i5 | 0) == 12)) {
12448 35 : _luaK_exp2nextreg(i4, i15);
12449 35 : i17 = i8;
12450 35 : i18 = i4;
12451 35 : i7 = 88;
12452 35 : break;
12453 35 : }
12454 35 : i5 = i8 + 1 | 0;
12455 35 : i5 = (i5 | 0) < 0 ? 0 : i5;
12456 35 : _luaK_setreturns(i4, i15, i5);
12457 35 : if ((i5 | 0) > 1) {
12458 35 : _luaK_reserveregs(i4, i5 + -1 | 0);
12459 35 : }
12460 35 : } else if ((i7 | 0) == 83) {
12461 35 : HEAP32[i15 >> 2] = 0;
12462 35 : i17 = i6;
12463 35 : i18 = HEAP32[i3 >> 2] | 0;
12464 35 : i7 = 88;
12465 35 : }
12466 35 : } while (0);
12467 35 : if ((i7 | 0) == 88 ? (i17 | 0) > 0 : 0) {
12468 35 : i29 = HEAPU8[i18 + 48 | 0] | 0;
12469 35 : _luaK_reserveregs(i18, i17);
12470 35 : _luaK_nil(i18, i29, i17);
12471 35 : }
12472 35 : i5 = HEAP32[i3 >> 2] | 0;
12473 35 : i4 = i5 + 46 | 0;
12474 35 : i7 = (HEAPU8[i4] | 0) + i6 | 0;
12475 35 : HEAP8[i4] = i7;
12476 35 : if ((i6 | 0) != 0 ? (i11 = i5 + 20 | 0, i14 = i5 + 40 | 0, i12 = HEAP32[(HEAP32[i5 >> 2] | 0) + 24 >> 2] | 0, i13 = HEAP32[HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i12 + ((HEAP16[i13 + ((i7 & 255) - i6 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2], i16 = i6 + -1 | 0, (i16 | 0) != 0) : 0) {
12477 35 : do {
12478 35 : HEAP32[i12 + ((HEAP16[i13 + ((HEAPU8[i4] | 0) - i16 + (HEAP32[i14 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i11 >> 2];
12479 35 : i16 = i16 + -1 | 0;
12480 35 : } while ((i16 | 0) != 0);
12481 35 : }
12482 35 : break;
12483 35 : }
12484 35 : case 264:
12485 35 : {
12486 35 : HEAP8[i24 + 10 | 0] = 1;
12487 35 : HEAP8[i24 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
12488 35 : i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
12489 35 : HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12490 35 : HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12491 35 : HEAP8[i24 + 9 | 0] = 0;
12492 35 : i29 = i9 + 16 | 0;
12493 35 : HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
12494 35 : HEAP32[i29 >> 2] = i24;
12495 35 : _luaX_next(i4);
12496 35 : if ((HEAP32[i5 >> 2] | 0) != 288) {
12497 35 : _error_expected(i4, 288);
12498 35 : }
12499 35 : i14 = i4 + 24 | 0;
12500 35 : i13 = HEAP32[i14 >> 2] | 0;
12501 35 : _luaX_next(i4);
12502 35 : i11 = HEAP32[i5 >> 2] | 0;
12503 35 : if ((i11 | 0) == 268 | (i11 | 0) == 44) {
12504 35 : i12 = HEAP32[i3 >> 2] | 0;
12505 35 : i11 = HEAPU8[i12 + 48 | 0] | 0;
12506 35 : _new_localvar(i4, _luaX_newstring(i4, 6744, 15) | 0);
12507 35 : _new_localvar(i4, _luaX_newstring(i4, 6760, 11) | 0);
12508 35 : _new_localvar(i4, _luaX_newstring(i4, 6776, 13) | 0);
12509 35 : _new_localvar(i4, i13);
12510 35 : i13 = HEAP32[i5 >> 2] | 0;
12511 35 : do {
12512 35 : if ((i13 | 0) == 44) {
12513 35 : i15 = 4;
12514 35 : while (1) {
12515 35 : _luaX_next(i4);
12516 35 : if ((HEAP32[i5 >> 2] | 0) != 288) {
12517 35 : i7 = 40;
12518 35 : break;
12519 35 : }
12520 35 : i13 = HEAP32[i14 >> 2] | 0;
12521 35 : _luaX_next(i4);
12522 35 : _new_localvar(i4, i13);
12523 35 : i13 = HEAP32[i5 >> 2] | 0;
12524 35 : if ((i13 | 0) == 44) {
12525 35 : i15 = i15 + 1 | 0;
12526 35 : } else {
12527 35 : i7 = 42;
12528 35 : break;
12529 35 : }
12530 35 : }
12531 35 : if ((i7 | 0) == 40) {
12532 35 : _error_expected(i4, 288);
12533 35 : } else if ((i7 | 0) == 42) {
12534 35 : i22 = i13;
12535 35 : i10 = i15 + -2 | 0;
12536 35 : break;
12537 35 : }
12538 35 : } else {
12539 35 : i22 = i13;
12540 35 : i10 = 1;
12541 35 : }
12542 35 : } while (0);
12543 35 : if ((i22 | 0) != 268) {
12544 35 : _error_expected(i4, 268);
12545 35 : }
12546 35 : _luaX_next(i4);
12547 35 : i13 = HEAP32[i19 >> 2] | 0;
12548 35 : _subexpr(i4, i8, 0) | 0;
12549 35 : if ((HEAP32[i5 >> 2] | 0) == 44) {
12550 35 : i14 = 1;
12551 35 : do {
12552 35 : _luaX_next(i4);
12553 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
12554 35 : _subexpr(i4, i8, 0) | 0;
12555 35 : i14 = i14 + 1 | 0;
12556 35 : } while ((HEAP32[i5 >> 2] | 0) == 44);
12557 35 : } else {
12558 35 : i14 = 1;
12559 35 : }
12560 35 : i5 = HEAP32[i3 >> 2] | 0;
12561 35 : i14 = 3 - i14 | 0;
12562 35 : i15 = HEAP32[i8 >> 2] | 0;
12563 35 : if ((i15 | 0) == 0) {
12564 35 : i7 = 51;
12565 35 : } else if ((i15 | 0) == 13 | (i15 | 0) == 12) {
12566 35 : i15 = i14 + 1 | 0;
12567 35 : i15 = (i15 | 0) < 0 ? 0 : i15;
12568 35 : _luaK_setreturns(i5, i8, i15);
12569 35 : if ((i15 | 0) > 1) {
12570 35 : _luaK_reserveregs(i5, i15 + -1 | 0);
12571 35 : }
12572 35 : } else {
12573 35 : _luaK_exp2nextreg(i5, i8);
12574 35 : i7 = 51;
12575 35 : }
12576 35 : if ((i7 | 0) == 51 ? (i14 | 0) > 0 : 0) {
12577 35 : i29 = HEAPU8[i5 + 48 | 0] | 0;
12578 35 : _luaK_reserveregs(i5, i14);
12579 35 : _luaK_nil(i5, i29, i14);
12580 35 : }
12581 35 : _luaK_checkstack(i12, 3);
12582 35 : _forbody(i4, i11, i13, i10, 0);
12583 35 : } else if ((i11 | 0) == 61) {
12584 35 : i11 = HEAP32[i3 >> 2] | 0;
12585 35 : i7 = i11 + 48 | 0;
12586 35 : i10 = HEAPU8[i7] | 0;
12587 35 : _new_localvar(i4, _luaX_newstring(i4, 6792, 11) | 0);
12588 35 : _new_localvar(i4, _luaX_newstring(i4, 6808, 11) | 0);
12589 35 : _new_localvar(i4, _luaX_newstring(i4, 6824, 10) | 0);
12590 35 : _new_localvar(i4, i13);
12591 35 : if ((HEAP32[i5 >> 2] | 0) != 61) {
12592 35 : _error_expected(i4, 61);
12593 35 : }
12594 35 : _luaX_next(i4);
12595 35 : _subexpr(i4, i8, 0) | 0;
12596 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
12597 35 : if ((HEAP32[i5 >> 2] | 0) != 44) {
12598 35 : _error_expected(i4, 44);
12599 35 : }
12600 35 : _luaX_next(i4);
12601 35 : _subexpr(i4, i8, 0) | 0;
12602 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
12603 35 : if ((HEAP32[i5 >> 2] | 0) == 44) {
12604 35 : _luaX_next(i4);
12605 35 : _subexpr(i4, i8, 0) | 0;
12606 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i8);
12607 35 : } else {
12608 35 : i29 = HEAPU8[i7] | 0;
12609 35 : _luaK_codek(i11, i29, _luaK_numberK(i11, 1.0) | 0) | 0;
12610 35 : _luaK_reserveregs(i11, 1);
12611 35 : }
12612 35 : _forbody(i4, i10, i6, 1, 1);
12613 35 : } else {
12614 35 : _luaX_syntaxerror(i4, 6720);
12615 35 : }
12616 35 : _check_match(i4, 262, 264, i6);
12617 35 : _leaveblock(i9);
12618 35 : break;
12619 35 : }
12620 35 : case 265:
12621 35 : {
12622 35 : _luaX_next(i4);
12623 35 : if ((HEAP32[i5 >> 2] | 0) != 288) {
12624 35 : _error_expected(i4, 288);
12625 35 : }
12626 35 : i8 = HEAP32[i4 + 24 >> 2] | 0;
12627 35 : _luaX_next(i4);
12628 35 : i9 = HEAP32[i3 >> 2] | 0;
12629 35 : if ((_singlevaraux(i9, i8, i20, 1) | 0) == 0) {
12630 35 : _singlevaraux(i9, HEAP32[i4 + 72 >> 2] | 0, i20, 1) | 0;
12631 35 : i29 = _luaK_stringK(HEAP32[i3 >> 2] | 0, i8) | 0;
12632 35 : HEAP32[i25 + 16 >> 2] = -1;
12633 35 : HEAP32[i25 + 20 >> 2] = -1;
12634 35 : HEAP32[i25 >> 2] = 4;
12635 35 : HEAP32[i25 + 8 >> 2] = i29;
12636 35 : _luaK_indexed(i9, i20, i25);
12637 35 : }
12638 35 : while (1) {
12639 35 : i8 = HEAP32[i5 >> 2] | 0;
12640 35 : if ((i8 | 0) == 58) {
12641 35 : i7 = 70;
12642 35 : break;
12643 35 : } else if ((i8 | 0) != 46) {
12644 35 : i5 = 0;
12645 35 : break;
12646 35 : }
12647 35 : _fieldsel(i4, i20);
12648 35 : }
12649 35 : if ((i7 | 0) == 70) {
12650 35 : _fieldsel(i4, i20);
12651 35 : i5 = 1;
12652 35 : }
12653 35 : _body(i4, i21, i5, i6);
12654 35 : _luaK_storevar(HEAP32[i3 >> 2] | 0, i20, i21);
12655 35 : _luaK_fixline(HEAP32[i3 >> 2] | 0, i6);
12656 35 : break;
12657 35 : }
12658 35 : case 278:
12659 35 : {
12660 35 : _luaX_next(i4);
12661 35 : i7 = _luaK_getlabel(i9) | 0;
12662 35 : _subexpr(i4, i20, 0) | 0;
12663 35 : if ((HEAP32[i20 >> 2] | 0) == 1) {
12664 35 : HEAP32[i20 >> 2] = 3;
12665 35 : }
12666 35 : _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i20);
12667 35 : i8 = HEAP32[i20 + 20 >> 2] | 0;
12668 35 : HEAP8[i21 + 10 | 0] = 1;
12669 35 : HEAP8[i21 + 8 | 0] = HEAP8[i9 + 46 | 0] | 0;
12670 35 : i29 = HEAP32[(HEAP32[i9 + 12 >> 2] | 0) + 64 >> 2] | 0;
12671 35 : HEAP16[i21 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12672 35 : HEAP16[i21 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12673 35 : HEAP8[i21 + 9 | 0] = 0;
12674 35 : i29 = i9 + 16 | 0;
12675 35 : HEAP32[i21 >> 2] = HEAP32[i29 >> 2];
12676 35 : HEAP32[i29 >> 2] = i21;
12677 35 : if ((HEAP32[i5 >> 2] | 0) != 259) {
12678 35 : _error_expected(i4, 259);
12679 35 : }
12680 35 : _luaX_next(i4);
12681 35 : i10 = HEAP32[i3 >> 2] | 0;
12682 35 : HEAP8[i20 + 10 | 0] = 0;
12683 35 : HEAP8[i20 + 8 | 0] = HEAP8[i10 + 46 | 0] | 0;
12684 35 : i29 = HEAP32[(HEAP32[i10 + 12 >> 2] | 0) + 64 >> 2] | 0;
12685 35 : HEAP16[i20 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12686 35 : HEAP16[i20 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12687 35 : HEAP8[i20 + 9 | 0] = 0;
12688 35 : i29 = i10 + 16 | 0;
12689 35 : HEAP32[i20 >> 2] = HEAP32[i29 >> 2];
12690 35 : HEAP32[i29 >> 2] = i20;
12691 35 : L119 : do {
12692 35 : i11 = HEAP32[i5 >> 2] | 0;
12693 35 : switch (i11 | 0) {
12694 35 : case 277:
12695 35 : case 286:
12696 35 : case 262:
12697 35 : case 261:
12698 35 : case 260:
12699 35 : {
12700 35 : break L119;
12701 35 : }
12702 35 : default:
12703 35 : {}
12704 35 : }
12705 35 : _statement(i4);
12706 35 : } while ((i11 | 0) != 274);
12707 35 : _leaveblock(i10);
12708 35 : _luaK_patchlist(i9, _luaK_jump(i9) | 0, i7);
12709 35 : _check_match(i4, 262, 278, i6);
12710 35 : _leaveblock(i9);
12711 35 : _luaK_patchtohere(i9, i8);
12712 35 : break;
12713 35 : }
12714 35 : case 273:
12715 35 : {
12716 35 : i7 = _luaK_getlabel(i9) | 0;
12717 35 : HEAP8[i24 + 10 | 0] = 1;
12718 35 : i28 = i9 + 46 | 0;
12719 35 : HEAP8[i24 + 8 | 0] = HEAP8[i28] | 0;
12720 35 : i11 = i9 + 12 | 0;
12721 35 : i29 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
12722 35 : HEAP16[i24 + 4 >> 1] = HEAP32[i29 + 28 >> 2];
12723 35 : HEAP16[i24 + 6 >> 1] = HEAP32[i29 + 16 >> 2];
12724 35 : HEAP8[i24 + 9 | 0] = 0;
12725 35 : i29 = i9 + 16 | 0;
12726 35 : HEAP32[i24 >> 2] = HEAP32[i29 >> 2];
12727 35 : HEAP32[i29 >> 2] = i24;
12728 35 : HEAP8[i15 + 10 | 0] = 0;
12729 35 : i10 = i15 + 8 | 0;
12730 35 : HEAP8[i10] = HEAP8[i28] | 0;
12731 35 : i11 = HEAP32[(HEAP32[i11 >> 2] | 0) + 64 >> 2] | 0;
12732 35 : HEAP16[i15 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
12733 35 : HEAP16[i15 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
12734 35 : i11 = i15 + 9 | 0;
12735 35 : HEAP8[i11] = 0;
12736 35 : HEAP32[i15 >> 2] = HEAP32[i29 >> 2];
12737 35 : HEAP32[i29 >> 2] = i15;
12738 35 : _luaX_next(i4);
12739 35 : L124 : do {
12740 35 : i12 = HEAP32[i5 >> 2] | 0;
12741 35 : switch (i12 | 0) {
12742 35 : case 277:
12743 35 : case 286:
12744 35 : case 262:
12745 35 : case 261:
12746 35 : case 260:
12747 35 : {
12748 35 : break L124;
12749 35 : }
12750 35 : default:
12751 35 : {}
12752 35 : }
12753 35 : _statement(i4);
12754 35 : } while ((i12 | 0) != 274);
12755 35 : _check_match(i4, 277, 273, i6);
12756 35 : _subexpr(i4, i8, 0) | 0;
12757 35 : if ((HEAP32[i8 >> 2] | 0) == 1) {
12758 35 : HEAP32[i8 >> 2] = 3;
12759 35 : }
12760 35 : _luaK_goiftrue(HEAP32[i3 >> 2] | 0, i8);
12761 35 : i4 = HEAP32[i8 + 20 >> 2] | 0;
12762 35 : if ((HEAP8[i11] | 0) != 0) {
12763 35 : _luaK_patchclose(i9, i4, HEAPU8[i10] | 0);
12764 35 : }
12765 35 : _leaveblock(i9);
12766 35 : _luaK_patchlist(i9, i4, i7);
12767 35 : _leaveblock(i9);
12768 35 : break;
12769 35 : }
12770 35 : case 285:
12771 35 : {
12772 35 : _luaX_next(i4);
12773 35 : if ((HEAP32[i5 >> 2] | 0) != 288) {
12774 35 : _error_expected(i4, 288);
12775 35 : }
12776 35 : i10 = HEAP32[i4 + 24 >> 2] | 0;
12777 35 : _luaX_next(i4);
12778 35 : i15 = HEAP32[i3 >> 2] | 0;
12779 35 : i9 = i4 + 64 | 0;
12780 35 : i14 = HEAP32[i9 >> 2] | 0;
12781 35 : i12 = i14 + 24 | 0;
12782 35 : i11 = i15 + 16 | 0;
12783 35 : i16 = HEAP16[(HEAP32[i11 >> 2] | 0) + 4 >> 1] | 0;
12784 35 : i13 = i14 + 28 | 0;
12785 35 : L138 : do {
12786 35 : if ((i16 | 0) < (HEAP32[i13 >> 2] | 0)) {
12787 35 : while (1) {
12788 35 : i17 = i16 + 1 | 0;
12789 35 : if ((_luaS_eqstr(i10, HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) >> 2] | 0) | 0) != 0) {
12790 35 : break;
12791 35 : }
12792 35 : if ((i17 | 0) < (HEAP32[i13 >> 2] | 0)) {
12793 35 : i16 = i17;
12794 35 : } else {
12795 35 : break L138;
12796 35 : }
12797 35 : }
12798 35 : i28 = i15 + 12 | 0;
12799 35 : i29 = HEAP32[(HEAP32[i28 >> 2] | 0) + 52 >> 2] | 0;
12800 35 : i27 = HEAP32[(HEAP32[i12 >> 2] | 0) + (i16 << 4) + 8 >> 2] | 0;
12801 35 : HEAP32[i8 >> 2] = i10 + 16;
12802 35 : HEAP32[i8 + 4 >> 2] = i27;
12803 35 : i29 = _luaO_pushfstring(i29, 6680, i8) | 0;
12804 35 : _semerror(HEAP32[i28 >> 2] | 0, i29);
12805 35 : }
12806 35 : } while (0);
12807 35 : if ((HEAP32[i5 >> 2] | 0) != 285) {
12808 35 : _error_expected(i4, 285);
12809 35 : }
12810 35 : _luaX_next(i4);
12811 35 : i8 = HEAP32[i15 + 20 >> 2] | 0;
12812 35 : i15 = HEAP32[i13 >> 2] | 0;
12813 35 : i14 = i14 + 32 | 0;
12814 35 : if ((i15 | 0) < (HEAP32[i14 >> 2] | 0)) {
12815 35 : i14 = HEAP32[i12 >> 2] | 0;
12816 35 : } else {
12817 35 : i14 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
12818 35 : HEAP32[i12 >> 2] = i14;
12819 35 : }
12820 35 : HEAP32[i14 + (i15 << 4) >> 2] = i10;
12821 35 : i29 = HEAP32[i12 >> 2] | 0;
12822 35 : HEAP32[i29 + (i15 << 4) + 8 >> 2] = i6;
12823 35 : HEAP8[i29 + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
12824 35 : HEAP32[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 4 >> 2] = i8;
12825 35 : HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
12826 35 : L152 : while (1) {
12827 35 : switch (HEAP32[i5 >> 2] | 0) {
12828 35 : case 285:
12829 35 : case 59:
12830 35 : {
12831 35 : break;
12832 35 : }
12833 35 : case 286:
12834 35 : case 262:
12835 35 : case 261:
12836 35 : case 260:
12837 35 : {
12838 35 : i7 = 108;
12839 35 : break L152;
12840 35 : }
12841 35 : default:
12842 35 : {
12843 35 : break L152;
12844 35 : }
12845 35 : }
12846 35 : _statement(i4);
12847 35 : }
12848 35 : if ((i7 | 0) == 108) {
12849 35 : HEAP8[(HEAP32[i12 >> 2] | 0) + (i15 << 4) + 12 | 0] = HEAP8[(HEAP32[i11 >> 2] | 0) + 8 | 0] | 0;
12850 35 : }
12851 35 : i5 = (HEAP32[i12 >> 2] | 0) + (i15 << 4) | 0;
12852 35 : i8 = HEAP32[i9 >> 2] | 0;
12853 35 : i7 = HEAP16[(HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
12854 35 : i6 = i8 + 16 | 0;
12855 35 : if ((i7 | 0) < (HEAP32[i6 >> 2] | 0)) {
12856 35 : i8 = i8 + 12 | 0;
12857 35 : do {
12858 35 : while (1) {
12859 35 : if ((_luaS_eqstr(HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 4) >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0) == 0) {
12860 35 : break;
12861 35 : }
12862 35 : _closegoto(i4, i7, i5);
12863 35 : if ((i7 | 0) >= (HEAP32[i6 >> 2] | 0)) {
12864 35 : break L8;
12865 35 : }
12866 35 : }
12867 35 : i7 = i7 + 1 | 0;
12868 35 : } while ((i7 | 0) < (HEAP32[i6 >> 2] | 0));
12869 35 : }
12870 35 : break;
12871 35 : }
12872 35 : case 274:
12873 35 : {
12874 35 : _luaX_next(i4);
12875 35 : i6 = HEAP32[i3 >> 2] | 0;
12876 35 : L166 : do {
12877 35 : switch (HEAP32[i5 >> 2] | 0) {
12878 35 : case 59:
12879 35 : case 277:
12880 35 : case 286:
12881 35 : case 262:
12882 35 : case 261:
12883 35 : case 260:
12884 35 : {
12885 35 : i8 = 0;
12886 35 : i7 = 0;
12887 35 : break;
12888 35 : }
12889 35 : default:
12890 35 : {
12891 35 : _subexpr(i4, i24, 0) | 0;
12892 35 : if ((HEAP32[i5 >> 2] | 0) == 44) {
12893 35 : i7 = 1;
12894 35 : do {
12895 35 : _luaX_next(i4);
12896 35 : _luaK_exp2nextreg(HEAP32[i3 >> 2] | 0, i24);
12897 35 : _subexpr(i4, i24, 0) | 0;
12898 35 : i7 = i7 + 1 | 0;
12899 35 : } while ((HEAP32[i5 >> 2] | 0) == 44);
12900 35 : } else {
12901 35 : i7 = 1;
12902 35 : }
12903 35 : if (!(((HEAP32[i24 >> 2] | 0) + -12 | 0) >>> 0 < 2)) {
12904 35 : if ((i7 | 0) == 1) {
12905 35 : i8 = _luaK_exp2anyreg(i6, i24) | 0;
12906 35 : i7 = 1;
12907 35 : break L166;
12908 35 : } else {
12909 35 : _luaK_exp2nextreg(i6, i24);
12910 35 : i8 = HEAPU8[i6 + 46 | 0] | 0;
12911 35 : break L166;
12912 35 : }
12913 35 : } else {
12914 35 : _luaK_setreturns(i6, i24, -1);
12915 35 : if ((HEAP32[i24 >> 2] | 0) == 12 & (i7 | 0) == 1) {
12916 35 : i29 = (HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i24 + 8 >> 2] << 2) | 0;
12917 35 : HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -64 | 30;
12918 35 : }
12919 35 : i8 = HEAPU8[i6 + 46 | 0] | 0;
12920 35 : i7 = -1;
12921 35 : break L166;
12922 35 : }
12923 35 : }
12924 35 : }
12925 35 : } while (0);
12926 35 : _luaK_ret(i6, i8, i7);
12927 35 : if ((HEAP32[i5 >> 2] | 0) == 59) {
12928 35 : _luaX_next(i4);
12929 35 : }
12930 35 : break;
12931 35 : }
12932 35 : case 266:
12933 35 : case 258:
12934 35 : {
12935 35 : i6 = _luaK_jump(i9) | 0;
12936 35 : i7 = HEAP32[i19 >> 2] | 0;
12937 35 : i29 = (HEAP32[i5 >> 2] | 0) == 266;
12938 35 : _luaX_next(i4);
12939 35 : do {
12940 35 : if (i29) {
12941 35 : if ((HEAP32[i5 >> 2] | 0) == 288) {
12942 35 : i23 = HEAP32[i4 + 24 >> 2] | 0;
12943 35 : _luaX_next(i4);
12944 35 : break;
12945 35 : } else {
12946 35 : _error_expected(i4, 288);
12947 35 : }
12948 35 : } else {
12949 35 : i23 = _luaS_new(HEAP32[i1 >> 2] | 0, 6304) | 0;
12950 35 : }
12951 35 : } while (0);
12952 35 : i10 = HEAP32[i4 + 64 >> 2] | 0;
12953 35 : i9 = i10 + 12 | 0;
12954 35 : i5 = i10 + 16 | 0;
12955 35 : i8 = HEAP32[i5 >> 2] | 0;
12956 35 : i10 = i10 + 20 | 0;
12957 35 : if ((i8 | 0) < (HEAP32[i10 >> 2] | 0)) {
12958 35 : i10 = HEAP32[i9 >> 2] | 0;
12959 35 : } else {
12960 35 : i10 = _luaM_growaux_(HEAP32[i1 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 16, 32767, 6312) | 0;
12961 35 : HEAP32[i9 >> 2] = i10;
12962 35 : }
12963 35 : HEAP32[i10 + (i8 << 4) >> 2] = i23;
12964 35 : i29 = HEAP32[i9 >> 2] | 0;
12965 35 : HEAP32[i29 + (i8 << 4) + 8 >> 2] = i7;
12966 35 : HEAP8[i29 + (i8 << 4) + 12 | 0] = HEAP8[(HEAP32[i3 >> 2] | 0) + 46 | 0] | 0;
12967 35 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i8 << 4) + 4 >> 2] = i6;
12968 35 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
12969 35 : _findlabel(i4, i8) | 0;
12970 35 : break;
12971 35 : }
12972 35 : default:
12973 35 : {
12974 35 : i6 = i8 + 8 | 0;
12975 35 : _suffixedexp(i4, i6);
12976 35 : i29 = HEAP32[i5 >> 2] | 0;
12977 35 : if ((i29 | 0) == 44 | (i29 | 0) == 61) {
12978 35 : HEAP32[i8 >> 2] = 0;
12979 35 : _assignment(i4, i8, 1);
12980 35 : break L8;
12981 35 : }
12982 35 : if ((HEAP32[i6 >> 2] | 0) == 12) {
12983 35 : i29 = (HEAP32[(HEAP32[i9 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i8 + 16 >> 2] << 2) | 0;
12984 35 : HEAP32[i29 >> 2] = HEAP32[i29 >> 2] & -8372225 | 16384;
12985 35 : break L8;
12986 35 : } else {
12987 35 : _luaX_syntaxerror(i4, 6344);
12988 35 : }
12989 35 : }
12990 35 : }
12991 35 : } while (0);
12992 35 : i29 = HEAP32[i3 >> 2] | 0;
12993 35 : HEAP8[i29 + 48 | 0] = HEAP8[i29 + 46 | 0] | 0;
12994 35 : i29 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
12995 35 : HEAP16[i29 >> 1] = (HEAP16[i29 >> 1] | 0) + -1 << 16 >> 16;
12996 35 : STACKTOP = i2;
12997 35 : return;
12998 35 : }
12999 1 : function _match(i1, i12, i11) {
13000 0 : i1 = i1 | 0;
13001 0 : i12 = i12 | 0;
13002 0 : i11 = i11 | 0;
13003 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0, i31 = 0, i32 = 0;
13004 0 : i2 = STACKTOP;
13005 0 : STACKTOP = STACKTOP + 16 | 0;
13006 0 : i8 = i2;
13007 0 : i32 = HEAP32[i1 >> 2] | 0;
13008 0 : HEAP32[i1 >> 2] = i32 + -1;
13009 0 : if ((i32 | 0) == 0) {
13010 0 : _luaL_error(HEAP32[i1 + 16 >> 2] | 0, 7272, i8) | 0;
13011 0 : }
13012 0 : i14 = i1 + 12 | 0;
13013 0 : i22 = HEAP32[i14 >> 2] | 0;
13014 0 : L4 : do {
13015 0 : if ((i22 | 0) != (i11 | 0)) {
13016 0 : i3 = i1 + 8 | 0;
13017 0 : i9 = i1 + 16 | 0;
13018 0 : i16 = i1 + 4 | 0;
13019 0 : i10 = i1 + 20 | 0;
13020 0 : L6 : while (1) {
13021 0 : i19 = i12 + 1 | 0;
13022 0 : i20 = i12 + -1 | 0;
13023 0 : L8 : while (1) {
13024 0 : i23 = HEAP8[i11] | 0;
13025 0 : i21 = i23 << 24 >> 24;
13026 0 : L10 : do {
13027 0 : if ((i21 | 0) == 36) {
13028 0 : i7 = i11 + 1 | 0;
13029 0 : if ((i7 | 0) == (i22 | 0)) {
13030 0 : i7 = 23;
13031 0 : break L6;
13032 0 : } else {
13033 0 : i22 = i7;
13034 0 : i21 = i7;
13035 0 : i7 = 89;
13036 0 : }
13037 0 : } else if ((i21 | 0) == 37) {
13038 0 : i21 = i11 + 1 | 0;
13039 0 : i23 = HEAP8[i21] | 0;
13040 0 : switch (i23 << 24 >> 24 | 0) {
13041 0 : case 57:
13042 0 : case 56:
13043 0 : case 55:
13044 0 : case 54:
13045 0 : case 53:
13046 0 : case 52:
13047 0 : case 51:
13048 0 : case 50:
13049 0 : case 49:
13050 0 : case 48:
13051 0 : {
13052 0 : i7 = 69;
13053 0 : break L8;
13054 0 : }
13055 0 : case 98:
13056 0 : {
13057 0 : i7 = 25;
13058 0 : break L8;
13059 0 : }
13060 0 : case 102:
13061 0 : {
13062 0 : break;
13063 0 : }
13064 0 : default:
13065 0 : {
13066 0 : if ((i21 | 0) == (i22 | 0)) {
13067 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
13068 0 : }
13069 0 : i22 = i11 + 2 | 0;
13070 0 : i7 = 89;
13071 0 : break L10;
13072 0 : }
13073 0 : }
13074 0 : i22 = i11 + 2 | 0;
13075 0 : if ((HEAP8[i22] | 0) == 91) {
13076 0 : i21 = 91;
13077 0 : } else {
13078 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7296, i8) | 0;
13079 0 : i21 = HEAP8[i22] | 0;
13080 0 : }
13081 0 : i23 = i11 + 3 | 0;
13082 0 : i21 = i21 << 24 >> 24;
13083 0 : if ((i21 | 0) == 91) {
13084 0 : i21 = (HEAP8[i23] | 0) == 94 ? i11 + 4 | 0 : i23;
13085 0 : while (1) {
13086 0 : if ((i21 | 0) == (HEAP32[i14 >> 2] | 0)) {
13087 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
13088 0 : }
13089 0 : i11 = i21 + 1 | 0;
13090 0 : if ((HEAP8[i21] | 0) == 37) {
13091 0 : i11 = i11 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i21 + 2 | 0 : i11;
13092 0 : }
13093 0 : if ((HEAP8[i11] | 0) == 93) {
13094 0 : break;
13095 0 : } else {
13096 0 : i21 = i11;
13097 0 : }
13098 0 : }
13099 0 : i11 = i11 + 1 | 0;
13100 0 : } else if ((i21 | 0) == 37) {
13101 0 : if ((i23 | 0) == (HEAP32[i14 >> 2] | 0)) {
13102 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7368, i8) | 0;
13103 0 : }
13104 0 : i11 = i11 + 4 | 0;
13105 0 : } else {
13106 0 : i11 = i23;
13107 0 : }
13108 0 : if ((i12 | 0) == (HEAP32[i16 >> 2] | 0)) {
13109 0 : i25 = 0;
13110 0 : } else {
13111 0 : i25 = HEAP8[i20] | 0;
13112 0 : }
13113 0 : i24 = i25 & 255;
13114 0 : i21 = i11 + -1 | 0;
13115 0 : i26 = (HEAP8[i23] | 0) == 94;
13116 0 : i28 = i26 ? i23 : i22;
13117 0 : i27 = i26 & 1;
13118 0 : i26 = i27 ^ 1;
13119 0 : i30 = i28 + 1 | 0;
13120 0 : L41 : do {
13121 0 : if (i30 >>> 0 < i21 >>> 0) {
13122 0 : while (1) {
13123 0 : i32 = HEAP8[i30] | 0;
13124 0 : i29 = i28 + 2 | 0;
13125 0 : i31 = HEAP8[i29] | 0;
13126 0 : do {
13127 0 : if (i32 << 24 >> 24 == 37) {
13128 0 : if ((_match_class(i24, i31 & 255) | 0) == 0) {
13129 0 : i28 = i29;
13130 0 : } else {
13131 0 : break L41;
13132 0 : }
13133 0 : } else {
13134 0 : if (i31 << 24 >> 24 == 45 ? (i18 = i28 + 3 | 0, i18 >>> 0 < i21 >>> 0) : 0) {
13135 0 : if ((i32 & 255) > (i25 & 255)) {
13136 0 : i28 = i18;
13137 0 : break;
13138 0 : }
13139 0 : if ((HEAPU8[i18] | 0) < (i25 & 255)) {
13140 0 : i28 = i18;
13141 0 : break;
13142 0 : } else {
13143 0 : break L41;
13144 0 : }
13145 0 : }
13146 0 : if (i32 << 24 >> 24 == i25 << 24 >> 24) {
13147 0 : break L41;
13148 0 : } else {
13149 0 : i28 = i30;
13150 0 : }
13151 0 : }
13152 0 : } while (0);
13153 0 : i30 = i28 + 1 | 0;
13154 0 : if (!(i30 >>> 0 < i21 >>> 0)) {
13155 0 : i26 = i27;
13156 0 : break;
13157 0 : }
13158 0 : }
13159 0 : } else {
13160 0 : i26 = i27;
13161 0 : }
13162 0 : } while (0);
13163 0 : if ((i26 | 0) != 0) {
13164 0 : i12 = 0;
13165 0 : break L4;
13166 0 : }
13167 0 : i24 = HEAP8[i12] | 0;
13168 0 : i25 = i24 & 255;
13169 0 : i27 = (HEAP8[i23] | 0) == 94;
13170 0 : i26 = i27 ? i23 : i22;
13171 0 : i22 = i27 & 1;
13172 0 : i23 = i22 ^ 1;
13173 0 : i30 = i26 + 1 | 0;
13174 0 : L55 : do {
13175 0 : if (i30 >>> 0 < i21 >>> 0) {
13176 0 : do {
13177 0 : i29 = HEAP8[i30] | 0;
13178 0 : i28 = i26 + 2 | 0;
13179 0 : i27 = HEAP8[i28] | 0;
13180 0 : do {
13181 0 : if (i29 << 24 >> 24 == 37) {
13182 0 : if ((_match_class(i25, i27 & 255) | 0) == 0) {
13183 0 : i26 = i28;
13184 0 : } else {
13185 0 : i22 = i23;
13186 0 : break L55;
13187 0 : }
13188 0 : } else {
13189 0 : if (i27 << 24 >> 24 == 45 ? (i17 = i26 + 3 | 0, i17 >>> 0 < i21 >>> 0) : 0) {
13190 0 : if ((i29 & 255) > (i24 & 255)) {
13191 0 : i26 = i17;
13192 0 : break;
13193 0 : }
13194 0 : if ((HEAPU8[i17] | 0) < (i24 & 255)) {
13195 0 : i26 = i17;
13196 0 : break;
13197 0 : } else {
13198 0 : i22 = i23;
13199 0 : break L55;
13200 0 : }
13201 0 : }
13202 0 : if (i29 << 24 >> 24 == i24 << 24 >> 24) {
13203 0 : i22 = i23;
13204 0 : break L55;
13205 0 : } else {
13206 0 : i26 = i30;
13207 0 : }
13208 0 : }
13209 0 : } while (0);
13210 0 : i30 = i26 + 1 | 0;
13211 0 : } while (i30 >>> 0 < i21 >>> 0);
13212 0 : }
13213 0 : } while (0);
13214 0 : if ((i22 | 0) == 0) {
13215 0 : i12 = 0;
13216 0 : break L4;
13217 0 : }
13218 0 : } else if ((i21 | 0) == 40) {
13219 0 : i7 = 7;
13220 0 : break L6;
13221 0 : } else if ((i21 | 0) != 41) {
13222 0 : i21 = i11 + 1 | 0;
13223 0 : if (i23 << 24 >> 24 == 91) {
13224 0 : i7 = (HEAP8[i21] | 0) == 94 ? i11 + 2 | 0 : i21;
13225 0 : while (1) {
13226 0 : if ((i7 | 0) == (i22 | 0)) {
13227 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7408, i8) | 0;
13228 0 : }
13229 0 : i22 = i7 + 1 | 0;
13230 0 : if ((HEAP8[i7] | 0) == 37) {
13231 0 : i7 = i22 >>> 0 < (HEAP32[i14 >> 2] | 0) >>> 0 ? i7 + 2 | 0 : i22;
13232 0 : } else {
13233 0 : i7 = i22;
13234 0 : }
13235 0 : if ((HEAP8[i7] | 0) == 93) {
13236 0 : break;
13237 0 : }
13238 0 : i22 = HEAP32[i14 >> 2] | 0;
13239 0 : }
13240 0 : i22 = i7 + 1 | 0;
13241 0 : i7 = 89;
13242 0 : } else {
13243 0 : i22 = i21;
13244 0 : i7 = 89;
13245 0 : }
13246 0 : } else {
13247 0 : i7 = 16;
13248 0 : break L6;
13249 0 : }
13250 0 : } while (0);
13251 0 : L80 : do {
13252 0 : if ((i7 | 0) == 89) {
13253 0 : i7 = 0;
13254 0 : do {
13255 0 : if ((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0) {
13256 0 : i23 = HEAP8[i12] | 0;
13257 0 : i24 = i23 & 255;
13258 0 : i26 = HEAP8[i11] | 0;
13259 0 : i25 = i26 << 24 >> 24;
13260 0 : L85 : do {
13261 0 : if ((i25 | 0) == 46) {
13262 0 : i23 = HEAP8[i22] | 0;
13263 0 : } else if ((i25 | 0) == 37) {
13264 0 : i25 = _match_class(i24, HEAPU8[i21] | 0) | 0;
13265 0 : i7 = 104;
13266 0 : } else if ((i25 | 0) == 91) {
13267 0 : i7 = i22 + -1 | 0;
13268 0 : i25 = (HEAP8[i21] | 0) == 94;
13269 0 : i27 = i25 ? i21 : i11;
13270 0 : i26 = i25 & 1;
13271 0 : i25 = i26 ^ 1;
13272 0 : i30 = i27 + 1 | 0;
13273 0 : if (i30 >>> 0 < i7 >>> 0) {
13274 0 : while (1) {
13275 0 : i31 = HEAP8[i30] | 0;
13276 0 : i29 = i27 + 2 | 0;
13277 0 : i28 = HEAP8[i29] | 0;
13278 0 : do {
13279 0 : if (i31 << 24 >> 24 == 37) {
13280 0 : if ((_match_class(i24, i28 & 255) | 0) == 0) {
13281 0 : i27 = i29;
13282 0 : } else {
13283 0 : i7 = 104;
13284 0 : break L85;
13285 0 : }
13286 0 : } else {
13287 0 : if (i28 << 24 >> 24 == 45 ? (i13 = i27 + 3 | 0, i13 >>> 0 < i7 >>> 0) : 0) {
13288 0 : if ((i31 & 255) > (i23 & 255)) {
13289 0 : i27 = i13;
13290 0 : break;
13291 0 : }
13292 0 : if ((HEAPU8[i13] | 0) < (i23 & 255)) {
13293 0 : i27 = i13;
13294 0 : break;
13295 0 : } else {
13296 0 : i7 = 104;
13297 0 : break L85;
13298 0 : }
13299 0 : }
13300 0 : if (i31 << 24 >> 24 == i23 << 24 >> 24) {
13301 0 : i7 = 104;
13302 0 : break L85;
13303 0 : } else {
13304 0 : i27 = i30;
13305 0 : }
13306 0 : }
13307 0 : } while (0);
13308 0 : i30 = i27 + 1 | 0;
13309 0 : if (!(i30 >>> 0 < i7 >>> 0)) {
13310 0 : i25 = i26;
13311 0 : i7 = 104;
13312 0 : break;
13313 0 : }
13314 0 : }
13315 0 : } else {
13316 0 : i25 = i26;
13317 0 : i7 = 104;
13318 0 : }
13319 0 : } else {
13320 0 : i25 = i26 << 24 >> 24 == i23 << 24 >> 24 | 0;
13321 0 : i7 = 104;
13322 0 : }
13323 0 : } while (0);
13324 0 : if ((i7 | 0) == 104) {
13325 0 : i7 = 0;
13326 0 : i23 = HEAP8[i22] | 0;
13327 0 : if ((i25 | 0) == 0) {
13328 0 : break;
13329 0 : }
13330 0 : }
13331 0 : i23 = i23 << 24 >> 24;
13332 0 : if ((i23 | 0) == 45) {
13333 0 : i7 = 109;
13334 0 : break L6;
13335 0 : } else if ((i23 | 0) == 42) {
13336 0 : i7 = 112;
13337 0 : break L6;
13338 0 : } else if ((i23 | 0) == 43) {
13339 0 : break L6;
13340 0 : } else if ((i23 | 0) != 63) {
13341 0 : i12 = i19;
13342 0 : i11 = i22;
13343 0 : break L8;
13344 0 : }
13345 0 : i11 = i22 + 1 | 0;
13346 0 : i21 = _match(i1, i19, i11) | 0;
13347 0 : if ((i21 | 0) == 0) {
13348 0 : break L80;
13349 0 : } else {
13350 0 : i12 = i21;
13351 0 : break L4;
13352 0 : }
13353 0 : } else {
13354 0 : i23 = HEAP8[i22] | 0;
13355 0 : }
13356 0 : } while (0);
13357 0 : if (!(i23 << 24 >> 24 == 45 | i23 << 24 >> 24 == 63 | i23 << 24 >> 24 == 42)) {
13358 0 : i12 = 0;
13359 0 : break L4;
13360 0 : }
13361 0 : i11 = i22 + 1 | 0;
13362 0 : }
13363 0 : } while (0);
13364 0 : i22 = HEAP32[i14 >> 2] | 0;
13365 0 : if ((i11 | 0) == (i22 | 0)) {
13366 0 : break L4;
13367 0 : }
13368 0 : }
13369 0 : if ((i7 | 0) == 25) {
13370 0 : i7 = 0;
13371 0 : i21 = i11 + 2 | 0;
13372 0 : if (!((i22 + -1 | 0) >>> 0 > i21 >>> 0)) {
13373 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7440, i8) | 0;
13374 0 : }
13375 0 : i20 = HEAP8[i12] | 0;
13376 0 : if (!(i20 << 24 >> 24 == (HEAP8[i21] | 0))) {
13377 0 : i12 = 0;
13378 0 : break L4;
13379 0 : }
13380 0 : i21 = HEAP8[i11 + 3 | 0] | 0;
13381 0 : i22 = HEAP32[i3 >> 2] | 0;
13382 0 : if (i19 >>> 0 < i22 >>> 0) {
13383 0 : i24 = 1;
13384 0 : } else {
13385 0 : i12 = 0;
13386 0 : break L4;
13387 0 : }
13388 0 : while (1) {
13389 0 : i23 = HEAP8[i19] | 0;
13390 0 : if (i23 << 24 >> 24 == i21 << 24 >> 24) {
13391 0 : i24 = i24 + -1 | 0;
13392 0 : if ((i24 | 0) == 0) {
13393 0 : break;
13394 0 : }
13395 0 : } else {
13396 0 : i24 = (i23 << 24 >> 24 == i20 << 24 >> 24) + i24 | 0;
13397 0 : }
13398 0 : i12 = i19 + 1 | 0;
13399 0 : if (i12 >>> 0 < i22 >>> 0) {
13400 0 : i32 = i19;
13401 0 : i19 = i12;
13402 0 : i12 = i32;
13403 0 : } else {
13404 0 : i12 = 0;
13405 0 : break L4;
13406 0 : }
13407 0 : }
13408 0 : i12 = i12 + 2 | 0;
13409 0 : i11 = i11 + 4 | 0;
13410 0 : } else if ((i7 | 0) == 69) {
13411 0 : i7 = 0;
13412 0 : i20 = i23 & 255;
13413 0 : i19 = i20 + -49 | 0;
13414 0 : if (((i19 | 0) >= 0 ? (i19 | 0) < (HEAP32[i10 >> 2] | 0) : 0) ? (i15 = HEAP32[i1 + (i19 << 3) + 28 >> 2] | 0, !((i15 | 0) == -1)) : 0) {
13415 0 : i20 = i15;
13416 0 : } else {
13417 0 : i19 = HEAP32[i9 >> 2] | 0;
13418 0 : HEAP32[i8 >> 2] = i20 + -48;
13419 0 : i20 = _luaL_error(i19, 7336, i8) | 0;
13420 0 : i19 = i20;
13421 0 : i20 = HEAP32[i1 + (i20 << 3) + 28 >> 2] | 0;
13422 0 : }
13423 0 : if (((HEAP32[i3 >> 2] | 0) - i12 | 0) >>> 0 < i20 >>> 0) {
13424 0 : i12 = 0;
13425 0 : break L4;
13426 0 : }
13427 0 : if ((_memcmp(HEAP32[i1 + (i19 << 3) + 24 >> 2] | 0, i12, i20) | 0) != 0) {
13428 0 : i12 = 0;
13429 0 : break L4;
13430 0 : }
13431 0 : i12 = i12 + i20 | 0;
13432 0 : if ((i12 | 0) == 0) {
13433 0 : i12 = 0;
13434 0 : break L4;
13435 0 : }
13436 0 : i11 = i11 + 2 | 0;
13437 0 : }
13438 0 : i22 = HEAP32[i14 >> 2] | 0;
13439 0 : if ((i11 | 0) == (i22 | 0)) {
13440 0 : break L4;
13441 0 : }
13442 0 : }
13443 0 : if ((i7 | 0) == 7) {
13444 0 : i3 = i11 + 1 | 0;
13445 0 : if ((HEAP8[i3] | 0) == 41) {
13446 0 : i3 = HEAP32[i10 >> 2] | 0;
13447 0 : if ((i3 | 0) > 31) {
13448 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
13449 0 : }
13450 0 : HEAP32[i1 + (i3 << 3) + 24 >> 2] = i12;
13451 0 : HEAP32[i1 + (i3 << 3) + 28 >> 2] = -2;
13452 0 : HEAP32[i10 >> 2] = i3 + 1;
13453 0 : i12 = _match(i1, i12, i11 + 2 | 0) | 0;
13454 0 : if ((i12 | 0) != 0) {
13455 0 : break;
13456 0 : }
13457 0 : HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
13458 0 : i12 = 0;
13459 0 : break;
13460 0 : } else {
13461 0 : i4 = HEAP32[i10 >> 2] | 0;
13462 0 : if ((i4 | 0) > 31) {
13463 0 : _luaL_error(HEAP32[i9 >> 2] | 0, 7200, i8) | 0;
13464 0 : }
13465 0 : HEAP32[i1 + (i4 << 3) + 24 >> 2] = i12;
13466 0 : HEAP32[i1 + (i4 << 3) + 28 >> 2] = -1;
13467 0 : HEAP32[i10 >> 2] = i4 + 1;
13468 0 : i12 = _match(i1, i12, i3) | 0;
13469 0 : if ((i12 | 0) != 0) {
13470 0 : break;
13471 0 : }
13472 0 : HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -1;
13473 0 : i12 = 0;
13474 0 : break;
13475 0 : }
13476 0 : } else if ((i7 | 0) == 16) {
13477 0 : i3 = i11 + 1 | 0;
13478 0 : i5 = HEAP32[i10 >> 2] | 0;
13479 0 : while (1) {
13480 0 : i4 = i5 + -1 | 0;
13481 0 : if ((i5 | 0) <= 0) {
13482 0 : i7 = 19;
13483 0 : break;
13484 0 : }
13485 0 : if ((HEAP32[i1 + (i4 << 3) + 28 >> 2] | 0) == -1) {
13486 0 : break;
13487 0 : } else {
13488 0 : i5 = i4;
13489 0 : }
13490 0 : }
13491 0 : if ((i7 | 0) == 19) {
13492 0 : i4 = _luaL_error(HEAP32[i9 >> 2] | 0, 7488, i8) | 0;
13493 0 : }
13494 0 : i5 = i1 + (i4 << 3) + 28 | 0;
13495 0 : HEAP32[i5 >> 2] = i12 - (HEAP32[i1 + (i4 << 3) + 24 >> 2] | 0);
13496 0 : i12 = _match(i1, i12, i3) | 0;
13497 0 : if ((i12 | 0) != 0) {
13498 0 : break;
13499 0 : }
13500 0 : HEAP32[i5 >> 2] = -1;
13501 0 : i12 = 0;
13502 0 : break;
13503 0 : } else if ((i7 | 0) == 23) {
13504 0 : i12 = (i12 | 0) == (HEAP32[i3 >> 2] | 0) ? i12 : 0;
13505 0 : break;
13506 0 : } else if ((i7 | 0) == 109) {
13507 0 : i4 = i22 + 1 | 0;
13508 0 : i8 = _match(i1, i12, i4) | 0;
13509 0 : if ((i8 | 0) != 0) {
13510 0 : i12 = i8;
13511 0 : break;
13512 0 : }
13513 0 : i8 = i22 + -1 | 0;
13514 0 : while (1) {
13515 0 : if (!((HEAP32[i3 >> 2] | 0) >>> 0 > i12 >>> 0)) {
13516 0 : i12 = 0;
13517 0 : break L4;
13518 0 : }
13519 0 : i9 = HEAP8[i12] | 0;
13520 0 : i10 = i9 & 255;
13521 0 : i14 = HEAP8[i11] | 0;
13522 0 : i13 = i14 << 24 >> 24;
13523 0 : L139 : do {
13524 0 : if ((i13 | 0) == 91) {
13525 0 : i6 = (HEAP8[i21] | 0) == 94;
13526 0 : i13 = i6 ? i21 : i11;
13527 0 : i6 = i6 & 1;
13528 0 : i7 = i6 ^ 1;
13529 0 : i14 = i13 + 1 | 0;
13530 0 : if (i14 >>> 0 < i8 >>> 0) {
13531 0 : while (1) {
13532 0 : i17 = HEAP8[i14] | 0;
13533 0 : i15 = i13 + 2 | 0;
13534 0 : i16 = HEAP8[i15] | 0;
13535 0 : do {
13536 0 : if (i17 << 24 >> 24 == 37) {
13537 0 : if ((_match_class(i10, i16 & 255) | 0) == 0) {
13538 0 : i13 = i15;
13539 0 : } else {
13540 0 : i6 = i7;
13541 0 : i7 = 147;
13542 0 : break L139;
13543 0 : }
13544 0 : } else {
13545 0 : if (i16 << 24 >> 24 == 45 ? (i5 = i13 + 3 | 0, i5 >>> 0 < i8 >>> 0) : 0) {
13546 0 : if ((i17 & 255) > (i9 & 255)) {
13547 0 : i13 = i5;
13548 0 : break;
13549 0 : }
13550 0 : if ((HEAPU8[i5] | 0) < (i9 & 255)) {
13551 0 : i13 = i5;
13552 0 : break;
13553 0 : } else {
13554 0 : i6 = i7;
13555 0 : i7 = 147;
13556 0 : break L139;
13557 0 : }
13558 0 : }
13559 0 : if (i17 << 24 >> 24 == i9 << 24 >> 24) {
13560 0 : i6 = i7;
13561 0 : i7 = 147;
13562 0 : break L139;
13563 0 : } else {
13564 0 : i13 = i14;
13565 0 : }
13566 0 : }
13567 0 : } while (0);
13568 0 : i14 = i13 + 1 | 0;
13569 0 : if (!(i14 >>> 0 < i8 >>> 0)) {
13570 0 : i7 = 147;
13571 0 : break;
13572 0 : }
13573 0 : }
13574 0 : } else {
13575 0 : i7 = 147;
13576 0 : }
13577 0 : } else if ((i13 | 0) == 37) {
13578 0 : i6 = _match_class(i10, HEAPU8[i21] | 0) | 0;
13579 0 : i7 = 147;
13580 0 : } else if ((i13 | 0) != 46) {
13581 0 : i6 = i14 << 24 >> 24 == i9 << 24 >> 24 | 0;
13582 0 : i7 = 147;
13583 0 : }
13584 0 : } while (0);
13585 0 : if ((i7 | 0) == 147 ? (i7 = 0, (i6 | 0) == 0) : 0) {
13586 0 : i12 = 0;
13587 0 : break L4;
13588 0 : }
13589 0 : i9 = i12 + 1 | 0;
13590 0 : i12 = _match(i1, i9, i4) | 0;
13591 0 : if ((i12 | 0) == 0) {
13592 0 : i12 = i9;
13593 0 : } else {
13594 0 : break L4;
13595 0 : }
13596 0 : }
13597 0 : } else if ((i7 | 0) == 112) {
13598 0 : i19 = i12;
13599 0 : }
13600 0 : i10 = HEAP32[i3 >> 2] | 0;
13601 0 : if (i10 >>> 0 > i19 >>> 0) {
13602 0 : i5 = i22 + -1 | 0;
13603 0 : i8 = i19;
13604 0 : i6 = 0;
13605 0 : do {
13606 0 : i8 = HEAP8[i8] | 0;
13607 0 : i9 = i8 & 255;
13608 0 : i13 = HEAP8[i11] | 0;
13609 0 : i12 = i13 << 24 >> 24;
13610 0 : L183 : do {
13611 0 : if ((i12 | 0) == 37) {
13612 0 : i10 = _match_class(i9, HEAPU8[i21] | 0) | 0;
13613 0 : i7 = 129;
13614 0 : } else if ((i12 | 0) == 91) {
13615 0 : i7 = (HEAP8[i21] | 0) == 94;
13616 0 : i12 = i7 ? i21 : i11;
13617 0 : i10 = i7 & 1;
13618 0 : i7 = i10 ^ 1;
13619 0 : i13 = i12 + 1 | 0;
13620 0 : if (i13 >>> 0 < i5 >>> 0) {
13621 0 : while (1) {
13622 0 : i14 = HEAP8[i13] | 0;
13623 0 : i16 = i12 + 2 | 0;
13624 0 : i15 = HEAP8[i16] | 0;
13625 0 : do {
13626 0 : if (i14 << 24 >> 24 == 37) {
13627 0 : if ((_match_class(i9, i15 & 255) | 0) == 0) {
13628 0 : i12 = i16;
13629 0 : } else {
13630 0 : i10 = i7;
13631 0 : i7 = 129;
13632 0 : break L183;
13633 0 : }
13634 0 : } else {
13635 0 : if (i15 << 24 >> 24 == 45 ? (i4 = i12 + 3 | 0, i4 >>> 0 < i5 >>> 0) : 0) {
13636 0 : if ((i14 & 255) > (i8 & 255)) {
13637 0 : i12 = i4;
13638 0 : break;
13639 0 : }
13640 0 : if ((HEAPU8[i4] | 0) < (i8 & 255)) {
13641 0 : i12 = i4;
13642 0 : break;
13643 0 : } else {
13644 0 : i10 = i7;
13645 0 : i7 = 129;
13646 0 : break L183;
13647 0 : }
13648 0 : }
13649 0 : if (i14 << 24 >> 24 == i8 << 24 >> 24) {
13650 0 : i10 = i7;
13651 0 : i7 = 129;
13652 0 : break L183;
13653 0 : } else {
13654 0 : i12 = i13;
13655 0 : }
13656 0 : }
13657 0 : } while (0);
13658 0 : i13 = i12 + 1 | 0;
13659 0 : if (!(i13 >>> 0 < i5 >>> 0)) {
13660 0 : i7 = 129;
13661 0 : break;
13662 0 : }
13663 0 : }
13664 0 : } else {
13665 0 : i7 = 129;
13666 0 : }
13667 0 : } else if ((i12 | 0) != 46) {
13668 0 : i10 = i13 << 24 >> 24 == i8 << 24 >> 24 | 0;
13669 0 : i7 = 129;
13670 0 : }
13671 0 : } while (0);
13672 0 : if ((i7 | 0) == 129) {
13673 0 : i7 = 0;
13674 0 : if ((i10 | 0) == 0) {
13675 0 : break;
13676 0 : }
13677 0 : i10 = HEAP32[i3 >> 2] | 0;
13678 0 : }
13679 0 : i6 = i6 + 1 | 0;
13680 0 : i8 = i19 + i6 | 0;
13681 0 : } while (i10 >>> 0 > i8 >>> 0);
13682 0 : if (!((i6 | 0) > -1)) {
13683 0 : i12 = 0;
13684 0 : break;
13685 0 : }
13686 0 : } else {
13687 0 : i6 = 0;
13688 0 : }
13689 0 : i3 = i22 + 1 | 0;
13690 0 : while (1) {
13691 0 : i12 = _match(i1, i19 + i6 | 0, i3) | 0;
13692 0 : if ((i12 | 0) != 0) {
13693 0 : break L4;
13694 0 : }
13695 0 : if ((i6 | 0) > 0) {
13696 0 : i6 = i6 + -1 | 0;
13697 0 : } else {
13698 0 : i12 = 0;
13699 0 : break;
13700 0 : }
13701 0 : }
13702 0 : }
13703 0 : } while (0);
13704 0 : HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 1;
13705 0 : STACKTOP = i2;
13706 0 : return i12 | 0;
13707 1 : }
13708 286477 : function _free(i7) {
13709 286477 : i7 = i7 | 0;
13710 286477 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
13711 286477 : i1 = STACKTOP;
13712 286477 : if ((i7 | 0) == 0) {
13713 286477 : STACKTOP = i1;
13714 286477 : return;
13715 286477 : }
13716 286477 : i15 = i7 + -8 | 0;
13717 286477 : i16 = HEAP32[12928 >> 2] | 0;
13718 286477 : if (i15 >>> 0 < i16 >>> 0) {
13719 286477 : _abort();
13720 286477 : }
13721 286477 : i13 = HEAP32[i7 + -4 >> 2] | 0;
13722 286477 : i12 = i13 & 3;
13723 286477 : if ((i12 | 0) == 1) {
13724 286477 : _abort();
13725 286477 : }
13726 286477 : i8 = i13 & -8;
13727 286477 : i6 = i7 + (i8 + -8) | 0;
13728 286477 : do {
13729 286477 : if ((i13 & 1 | 0) == 0) {
13730 286477 : i19 = HEAP32[i15 >> 2] | 0;
13731 286477 : if ((i12 | 0) == 0) {
13732 286477 : STACKTOP = i1;
13733 286477 : return;
13734 286477 : }
13735 286477 : i15 = -8 - i19 | 0;
13736 286477 : i13 = i7 + i15 | 0;
13737 286477 : i12 = i19 + i8 | 0;
13738 286477 : if (i13 >>> 0 < i16 >>> 0) {
13739 286477 : _abort();
13740 286477 : }
13741 286477 : if ((i13 | 0) == (HEAP32[12932 >> 2] | 0)) {
13742 286477 : i2 = i7 + (i8 + -4) | 0;
13743 286477 : if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
13744 286477 : i2 = i13;
13745 286477 : i11 = i12;
13746 286477 : break;
13747 286477 : }
13748 286477 : HEAP32[12920 >> 2] = i12;
13749 286477 : HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
13750 286477 : HEAP32[i7 + (i15 + 4) >> 2] = i12 | 1;
13751 286477 : HEAP32[i6 >> 2] = i12;
13752 286477 : STACKTOP = i1;
13753 286477 : return;
13754 286477 : }
13755 286477 : i18 = i19 >>> 3;
13756 286477 : if (i19 >>> 0 < 256) {
13757 286477 : i2 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
13758 286477 : i11 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
13759 286477 : i14 = 12952 + (i18 << 1 << 2) | 0;
13760 286477 : if ((i2 | 0) != (i14 | 0)) {
13761 286477 : if (i2 >>> 0 < i16 >>> 0) {
13762 286477 : _abort();
13763 286477 : }
13764 286477 : if ((HEAP32[i2 + 12 >> 2] | 0) != (i13 | 0)) {
13765 286477 : _abort();
13766 286477 : }
13767 286477 : }
13768 286477 : if ((i11 | 0) == (i2 | 0)) {
13769 286477 : HEAP32[3228] = HEAP32[3228] & ~(1 << i18);
13770 286477 : i2 = i13;
13771 286477 : i11 = i12;
13772 286477 : break;
13773 286477 : }
13774 286477 : if ((i11 | 0) != (i14 | 0)) {
13775 286477 : if (i11 >>> 0 < i16 >>> 0) {
13776 286477 : _abort();
13777 286477 : }
13778 286477 : i14 = i11 + 8 | 0;
13779 286477 : if ((HEAP32[i14 >> 2] | 0) == (i13 | 0)) {
13780 286477 : i17 = i14;
13781 286477 : } else {
13782 286477 : _abort();
13783 286477 : }
13784 286477 : } else {
13785 286477 : i17 = i11 + 8 | 0;
13786 286477 : }
13787 286477 : HEAP32[i2 + 12 >> 2] = i11;
13788 286477 : HEAP32[i17 >> 2] = i2;
13789 286477 : i2 = i13;
13790 286477 : i11 = i12;
13791 286477 : break;
13792 286477 : }
13793 286477 : i17 = HEAP32[i7 + (i15 + 24) >> 2] | 0;
13794 286477 : i18 = HEAP32[i7 + (i15 + 12) >> 2] | 0;
13795 286477 : do {
13796 286477 : if ((i18 | 0) == (i13 | 0)) {
13797 286477 : i19 = i7 + (i15 + 20) | 0;
13798 286477 : i18 = HEAP32[i19 >> 2] | 0;
13799 286477 : if ((i18 | 0) == 0) {
13800 286477 : i19 = i7 + (i15 + 16) | 0;
13801 286477 : i18 = HEAP32[i19 >> 2] | 0;
13802 286477 : if ((i18 | 0) == 0) {
13803 286477 : i14 = 0;
13804 286477 : break;
13805 286477 : }
13806 286477 : }
13807 286477 : while (1) {
13808 286477 : i21 = i18 + 20 | 0;
13809 286477 : i20 = HEAP32[i21 >> 2] | 0;
13810 286477 : if ((i20 | 0) != 0) {
13811 286477 : i18 = i20;
13812 286477 : i19 = i21;
13813 286477 : continue;
13814 286477 : }
13815 286477 : i20 = i18 + 16 | 0;
13816 286477 : i21 = HEAP32[i20 >> 2] | 0;
13817 286477 : if ((i21 | 0) == 0) {
13818 286477 : break;
13819 286477 : } else {
13820 286477 : i18 = i21;
13821 286477 : i19 = i20;
13822 286477 : }
13823 286477 : }
13824 286477 : if (i19 >>> 0 < i16 >>> 0) {
13825 286477 : _abort();
13826 286477 : } else {
13827 286477 : HEAP32[i19 >> 2] = 0;
13828 286477 : i14 = i18;
13829 286477 : break;
13830 286477 : }
13831 286477 : } else {
13832 286477 : i19 = HEAP32[i7 + (i15 + 8) >> 2] | 0;
13833 286477 : if (i19 >>> 0 < i16 >>> 0) {
13834 286477 : _abort();
13835 286477 : }
13836 286477 : i16 = i19 + 12 | 0;
13837 286477 : if ((HEAP32[i16 >> 2] | 0) != (i13 | 0)) {
13838 286477 : _abort();
13839 286477 : }
13840 286477 : i20 = i18 + 8 | 0;
13841 286477 : if ((HEAP32[i20 >> 2] | 0) == (i13 | 0)) {
13842 286477 : HEAP32[i16 >> 2] = i18;
13843 286477 : HEAP32[i20 >> 2] = i19;
13844 286477 : i14 = i18;
13845 286477 : break;
13846 286477 : } else {
13847 286477 : _abort();
13848 286477 : }
13849 286477 : }
13850 286477 : } while (0);
13851 286477 : if ((i17 | 0) != 0) {
13852 286477 : i18 = HEAP32[i7 + (i15 + 28) >> 2] | 0;
13853 286477 : i16 = 13216 + (i18 << 2) | 0;
13854 286477 : if ((i13 | 0) == (HEAP32[i16 >> 2] | 0)) {
13855 286477 : HEAP32[i16 >> 2] = i14;
13856 286477 : if ((i14 | 0) == 0) {
13857 286477 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i18);
13858 286477 : i2 = i13;
13859 286477 : i11 = i12;
13860 286477 : break;
13861 286477 : }
13862 286477 : } else {
13863 286477 : if (i17 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13864 286477 : _abort();
13865 286477 : }
13866 286477 : i16 = i17 + 16 | 0;
13867 286477 : if ((HEAP32[i16 >> 2] | 0) == (i13 | 0)) {
13868 286477 : HEAP32[i16 >> 2] = i14;
13869 286477 : } else {
13870 286477 : HEAP32[i17 + 20 >> 2] = i14;
13871 286477 : }
13872 286477 : if ((i14 | 0) == 0) {
13873 286477 : i2 = i13;
13874 286477 : i11 = i12;
13875 286477 : break;
13876 286477 : }
13877 286477 : }
13878 286477 : if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13879 286477 : _abort();
13880 286477 : }
13881 286477 : HEAP32[i14 + 24 >> 2] = i17;
13882 286477 : i16 = HEAP32[i7 + (i15 + 16) >> 2] | 0;
13883 286477 : do {
13884 286477 : if ((i16 | 0) != 0) {
13885 286477 : if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13886 286477 : _abort();
13887 286477 : } else {
13888 286477 : HEAP32[i14 + 16 >> 2] = i16;
13889 286477 : HEAP32[i16 + 24 >> 2] = i14;
13890 286477 : break;
13891 286477 : }
13892 286477 : }
13893 286477 : } while (0);
13894 286477 : i15 = HEAP32[i7 + (i15 + 20) >> 2] | 0;
13895 286477 : if ((i15 | 0) != 0) {
13896 286477 : if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13897 286477 : _abort();
13898 286477 : } else {
13899 286477 : HEAP32[i14 + 20 >> 2] = i15;
13900 286477 : HEAP32[i15 + 24 >> 2] = i14;
13901 286477 : i2 = i13;
13902 286477 : i11 = i12;
13903 286477 : break;
13904 286477 : }
13905 286477 : } else {
13906 286477 : i2 = i13;
13907 286477 : i11 = i12;
13908 286477 : }
13909 286477 : } else {
13910 286477 : i2 = i13;
13911 286477 : i11 = i12;
13912 286477 : }
13913 286477 : } else {
13914 286477 : i2 = i15;
13915 286477 : i11 = i8;
13916 286477 : }
13917 286477 : } while (0);
13918 286477 : if (!(i2 >>> 0 < i6 >>> 0)) {
13919 286477 : _abort();
13920 286477 : }
13921 286477 : i12 = i7 + (i8 + -4) | 0;
13922 286477 : i13 = HEAP32[i12 >> 2] | 0;
13923 286477 : if ((i13 & 1 | 0) == 0) {
13924 286477 : _abort();
13925 286477 : }
13926 286477 : if ((i13 & 2 | 0) == 0) {
13927 286477 : if ((i6 | 0) == (HEAP32[12936 >> 2] | 0)) {
13928 286477 : i21 = (HEAP32[12924 >> 2] | 0) + i11 | 0;
13929 286477 : HEAP32[12924 >> 2] = i21;
13930 286477 : HEAP32[12936 >> 2] = i2;
13931 286477 : HEAP32[i2 + 4 >> 2] = i21 | 1;
13932 286477 : if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
13933 286477 : STACKTOP = i1;
13934 286477 : return;
13935 286477 : }
13936 286477 : HEAP32[12932 >> 2] = 0;
13937 286477 : HEAP32[12920 >> 2] = 0;
13938 286477 : STACKTOP = i1;
13939 286477 : return;
13940 286477 : }
13941 286477 : if ((i6 | 0) == (HEAP32[12932 >> 2] | 0)) {
13942 286477 : i21 = (HEAP32[12920 >> 2] | 0) + i11 | 0;
13943 286477 : HEAP32[12920 >> 2] = i21;
13944 286477 : HEAP32[12932 >> 2] = i2;
13945 286477 : HEAP32[i2 + 4 >> 2] = i21 | 1;
13946 286477 : HEAP32[i2 + i21 >> 2] = i21;
13947 286477 : STACKTOP = i1;
13948 286477 : return;
13949 286477 : }
13950 286477 : i11 = (i13 & -8) + i11 | 0;
13951 286477 : i12 = i13 >>> 3;
13952 286477 : do {
13953 286477 : if (!(i13 >>> 0 < 256)) {
13954 286477 : i10 = HEAP32[i7 + (i8 + 16) >> 2] | 0;
13955 286477 : i15 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
13956 286477 : do {
13957 286477 : if ((i15 | 0) == (i6 | 0)) {
13958 286477 : i13 = i7 + (i8 + 12) | 0;
13959 286477 : i12 = HEAP32[i13 >> 2] | 0;
13960 286477 : if ((i12 | 0) == 0) {
13961 286477 : i13 = i7 + (i8 + 8) | 0;
13962 286477 : i12 = HEAP32[i13 >> 2] | 0;
13963 286477 : if ((i12 | 0) == 0) {
13964 286477 : i9 = 0;
13965 286477 : break;
13966 286477 : }
13967 286477 : }
13968 286477 : while (1) {
13969 286477 : i14 = i12 + 20 | 0;
13970 286477 : i15 = HEAP32[i14 >> 2] | 0;
13971 286477 : if ((i15 | 0) != 0) {
13972 286477 : i12 = i15;
13973 286477 : i13 = i14;
13974 286477 : continue;
13975 286477 : }
13976 286477 : i14 = i12 + 16 | 0;
13977 286477 : i15 = HEAP32[i14 >> 2] | 0;
13978 286477 : if ((i15 | 0) == 0) {
13979 286477 : break;
13980 286477 : } else {
13981 286477 : i12 = i15;
13982 286477 : i13 = i14;
13983 286477 : }
13984 286477 : }
13985 286477 : if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13986 286477 : _abort();
13987 286477 : } else {
13988 286477 : HEAP32[i13 >> 2] = 0;
13989 286477 : i9 = i12;
13990 286477 : break;
13991 286477 : }
13992 286477 : } else {
13993 286477 : i13 = HEAP32[i7 + i8 >> 2] | 0;
13994 286477 : if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
13995 286477 : _abort();
13996 286477 : }
13997 286477 : i14 = i13 + 12 | 0;
13998 286477 : if ((HEAP32[i14 >> 2] | 0) != (i6 | 0)) {
13999 286477 : _abort();
14000 286477 : }
14001 286477 : i12 = i15 + 8 | 0;
14002 286477 : if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
14003 286477 : HEAP32[i14 >> 2] = i15;
14004 286477 : HEAP32[i12 >> 2] = i13;
14005 286477 : i9 = i15;
14006 286477 : break;
14007 286477 : } else {
14008 286477 : _abort();
14009 286477 : }
14010 286477 : }
14011 286477 : } while (0);
14012 286477 : if ((i10 | 0) != 0) {
14013 286477 : i12 = HEAP32[i7 + (i8 + 20) >> 2] | 0;
14014 286477 : i13 = 13216 + (i12 << 2) | 0;
14015 286477 : if ((i6 | 0) == (HEAP32[i13 >> 2] | 0)) {
14016 286477 : HEAP32[i13 >> 2] = i9;
14017 286477 : if ((i9 | 0) == 0) {
14018 286477 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i12);
14019 286477 : break;
14020 286477 : }
14021 286477 : } else {
14022 286477 : if (i10 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14023 286477 : _abort();
14024 286477 : }
14025 286477 : i12 = i10 + 16 | 0;
14026 286477 : if ((HEAP32[i12 >> 2] | 0) == (i6 | 0)) {
14027 286477 : HEAP32[i12 >> 2] = i9;
14028 286477 : } else {
14029 286477 : HEAP32[i10 + 20 >> 2] = i9;
14030 286477 : }
14031 286477 : if ((i9 | 0) == 0) {
14032 286477 : break;
14033 286477 : }
14034 286477 : }
14035 286477 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14036 286477 : _abort();
14037 286477 : }
14038 286477 : HEAP32[i9 + 24 >> 2] = i10;
14039 286477 : i6 = HEAP32[i7 + (i8 + 8) >> 2] | 0;
14040 286477 : do {
14041 286477 : if ((i6 | 0) != 0) {
14042 286477 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14043 286477 : _abort();
14044 286477 : } else {
14045 286477 : HEAP32[i9 + 16 >> 2] = i6;
14046 286477 : HEAP32[i6 + 24 >> 2] = i9;
14047 286477 : break;
14048 286477 : }
14049 286477 : }
14050 286477 : } while (0);
14051 286477 : i6 = HEAP32[i7 + (i8 + 12) >> 2] | 0;
14052 286477 : if ((i6 | 0) != 0) {
14053 286477 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14054 286477 : _abort();
14055 286477 : } else {
14056 286477 : HEAP32[i9 + 20 >> 2] = i6;
14057 286477 : HEAP32[i6 + 24 >> 2] = i9;
14058 286477 : break;
14059 286477 : }
14060 286477 : }
14061 286477 : }
14062 286477 : } else {
14063 286477 : i9 = HEAP32[i7 + i8 >> 2] | 0;
14064 286477 : i7 = HEAP32[i7 + (i8 | 4) >> 2] | 0;
14065 286477 : i8 = 12952 + (i12 << 1 << 2) | 0;
14066 286477 : if ((i9 | 0) != (i8 | 0)) {
14067 286477 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14068 286477 : _abort();
14069 286477 : }
14070 286477 : if ((HEAP32[i9 + 12 >> 2] | 0) != (i6 | 0)) {
14071 286477 : _abort();
14072 286477 : }
14073 286477 : }
14074 286477 : if ((i7 | 0) == (i9 | 0)) {
14075 286477 : HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
14076 286477 : break;
14077 286477 : }
14078 286477 : if ((i7 | 0) != (i8 | 0)) {
14079 286477 : if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14080 286477 : _abort();
14081 286477 : }
14082 286477 : i8 = i7 + 8 | 0;
14083 286477 : if ((HEAP32[i8 >> 2] | 0) == (i6 | 0)) {
14084 286477 : i10 = i8;
14085 286477 : } else {
14086 286477 : _abort();
14087 286477 : }
14088 286477 : } else {
14089 286477 : i10 = i7 + 8 | 0;
14090 286477 : }
14091 286477 : HEAP32[i9 + 12 >> 2] = i7;
14092 286477 : HEAP32[i10 >> 2] = i9;
14093 286477 : }
14094 286477 : } while (0);
14095 286477 : HEAP32[i2 + 4 >> 2] = i11 | 1;
14096 286477 : HEAP32[i2 + i11 >> 2] = i11;
14097 286477 : if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
14098 286477 : HEAP32[12920 >> 2] = i11;
14099 286477 : STACKTOP = i1;
14100 286477 : return;
14101 286477 : }
14102 286477 : } else {
14103 286477 : HEAP32[i12 >> 2] = i13 & -2;
14104 286477 : HEAP32[i2 + 4 >> 2] = i11 | 1;
14105 286477 : HEAP32[i2 + i11 >> 2] = i11;
14106 286477 : }
14107 286477 : i6 = i11 >>> 3;
14108 286477 : if (i11 >>> 0 < 256) {
14109 286477 : i7 = i6 << 1;
14110 286477 : i3 = 12952 + (i7 << 2) | 0;
14111 286477 : i8 = HEAP32[3228] | 0;
14112 286477 : i6 = 1 << i6;
14113 286477 : if ((i8 & i6 | 0) != 0) {
14114 286477 : i6 = 12952 + (i7 + 2 << 2) | 0;
14115 286477 : i7 = HEAP32[i6 >> 2] | 0;
14116 286477 : if (i7 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14117 286477 : _abort();
14118 286477 : } else {
14119 286477 : i4 = i6;
14120 286477 : i5 = i7;
14121 286477 : }
14122 286477 : } else {
14123 286477 : HEAP32[3228] = i8 | i6;
14124 286477 : i4 = 12952 + (i7 + 2 << 2) | 0;
14125 286477 : i5 = i3;
14126 286477 : }
14127 286477 : HEAP32[i4 >> 2] = i2;
14128 286477 : HEAP32[i5 + 12 >> 2] = i2;
14129 286477 : HEAP32[i2 + 8 >> 2] = i5;
14130 286477 : HEAP32[i2 + 12 >> 2] = i3;
14131 286477 : STACKTOP = i1;
14132 286477 : return;
14133 286477 : }
14134 286477 : i4 = i11 >>> 8;
14135 286477 : if ((i4 | 0) != 0) {
14136 286477 : if (i11 >>> 0 > 16777215) {
14137 286477 : i4 = 31;
14138 286477 : } else {
14139 286477 : i20 = (i4 + 1048320 | 0) >>> 16 & 8;
14140 286477 : i21 = i4 << i20;
14141 286477 : i19 = (i21 + 520192 | 0) >>> 16 & 4;
14142 286477 : i21 = i21 << i19;
14143 286477 : i4 = (i21 + 245760 | 0) >>> 16 & 2;
14144 286477 : i4 = 14 - (i19 | i20 | i4) + (i21 << i4 >>> 15) | 0;
14145 286477 : i4 = i11 >>> (i4 + 7 | 0) & 1 | i4 << 1;
14146 286477 : }
14147 286477 : } else {
14148 286477 : i4 = 0;
14149 286477 : }
14150 286477 : i5 = 13216 + (i4 << 2) | 0;
14151 286477 : HEAP32[i2 + 28 >> 2] = i4;
14152 286477 : HEAP32[i2 + 20 >> 2] = 0;
14153 286477 : HEAP32[i2 + 16 >> 2] = 0;
14154 286477 : i7 = HEAP32[12916 >> 2] | 0;
14155 286477 : i6 = 1 << i4;
14156 286477 : L199 : do {
14157 286477 : if ((i7 & i6 | 0) != 0) {
14158 286477 : i5 = HEAP32[i5 >> 2] | 0;
14159 286477 : if ((i4 | 0) == 31) {
14160 286477 : i4 = 0;
14161 286477 : } else {
14162 286477 : i4 = 25 - (i4 >>> 1) | 0;
14163 286477 : }
14164 286477 : L204 : do {
14165 286477 : if ((HEAP32[i5 + 4 >> 2] & -8 | 0) != (i11 | 0)) {
14166 286477 : i4 = i11 << i4;
14167 286477 : i7 = i5;
14168 286477 : while (1) {
14169 286477 : i6 = i7 + (i4 >>> 31 << 2) + 16 | 0;
14170 286477 : i5 = HEAP32[i6 >> 2] | 0;
14171 286477 : if ((i5 | 0) == 0) {
14172 286477 : break;
14173 286477 : }
14174 286477 : if ((HEAP32[i5 + 4 >> 2] & -8 | 0) == (i11 | 0)) {
14175 286477 : i3 = i5;
14176 286477 : break L204;
14177 286477 : } else {
14178 286477 : i4 = i4 << 1;
14179 286477 : i7 = i5;
14180 286477 : }
14181 286477 : }
14182 286477 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14183 286477 : _abort();
14184 286477 : } else {
14185 286477 : HEAP32[i6 >> 2] = i2;
14186 286477 : HEAP32[i2 + 24 >> 2] = i7;
14187 286477 : HEAP32[i2 + 12 >> 2] = i2;
14188 286477 : HEAP32[i2 + 8 >> 2] = i2;
14189 286477 : break L199;
14190 286477 : }
14191 286477 : } else {
14192 286477 : i3 = i5;
14193 286477 : }
14194 286477 : } while (0);
14195 286477 : i5 = i3 + 8 | 0;
14196 286477 : i4 = HEAP32[i5 >> 2] | 0;
14197 286477 : i6 = HEAP32[12928 >> 2] | 0;
14198 286477 : if (i3 >>> 0 < i6 >>> 0) {
14199 286477 : _abort();
14200 286477 : }
14201 286477 : if (i4 >>> 0 < i6 >>> 0) {
14202 286477 : _abort();
14203 286477 : } else {
14204 286477 : HEAP32[i4 + 12 >> 2] = i2;
14205 286477 : HEAP32[i5 >> 2] = i2;
14206 286477 : HEAP32[i2 + 8 >> 2] = i4;
14207 286477 : HEAP32[i2 + 12 >> 2] = i3;
14208 286477 : HEAP32[i2 + 24 >> 2] = 0;
14209 286477 : break;
14210 286477 : }
14211 286477 : } else {
14212 286477 : HEAP32[12916 >> 2] = i7 | i6;
14213 286477 : HEAP32[i5 >> 2] = i2;
14214 286477 : HEAP32[i2 + 24 >> 2] = i5;
14215 286477 : HEAP32[i2 + 12 >> 2] = i2;
14216 286477 : HEAP32[i2 + 8 >> 2] = i2;
14217 286477 : }
14218 286477 : } while (0);
14219 286477 : i21 = (HEAP32[12944 >> 2] | 0) + -1 | 0;
14220 286477 : HEAP32[12944 >> 2] = i21;
14221 286477 : if ((i21 | 0) == 0) {
14222 286477 : i2 = 13368 | 0;
14223 286477 : } else {
14224 286477 : STACKTOP = i1;
14225 286477 : return;
14226 286477 : }
14227 286477 : while (1) {
14228 286477 : i2 = HEAP32[i2 >> 2] | 0;
14229 286477 : if ((i2 | 0) == 0) {
14230 286477 : break;
14231 286477 : } else {
14232 286477 : i2 = i2 + 8 | 0;
14233 286477 : }
14234 286477 : }
14235 286477 : HEAP32[12944 >> 2] = -1;
14236 286477 : STACKTOP = i1;
14237 286477 : return;
14238 286477 : }
14239 42 : function _dispose_chunk(i6, i7) {
14240 42 : i6 = i6 | 0;
14241 42 : i7 = i7 | 0;
14242 42 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
14243 42 : i1 = STACKTOP;
14244 42 : i5 = i6 + i7 | 0;
14245 42 : i10 = HEAP32[i6 + 4 >> 2] | 0;
14246 42 : do {
14247 42 : if ((i10 & 1 | 0) == 0) {
14248 42 : i14 = HEAP32[i6 >> 2] | 0;
14249 42 : if ((i10 & 3 | 0) == 0) {
14250 42 : STACKTOP = i1;
14251 42 : return;
14252 42 : }
14253 42 : i10 = i6 + (0 - i14) | 0;
14254 42 : i11 = i14 + i7 | 0;
14255 42 : i15 = HEAP32[12928 >> 2] | 0;
14256 42 : if (i10 >>> 0 < i15 >>> 0) {
14257 42 : _abort();
14258 42 : }
14259 42 : if ((i10 | 0) == (HEAP32[12932 >> 2] | 0)) {
14260 42 : i2 = i6 + (i7 + 4) | 0;
14261 42 : if ((HEAP32[i2 >> 2] & 3 | 0) != 3) {
14262 42 : i2 = i10;
14263 42 : i12 = i11;
14264 42 : break;
14265 42 : }
14266 42 : HEAP32[12920 >> 2] = i11;
14267 42 : HEAP32[i2 >> 2] = HEAP32[i2 >> 2] & -2;
14268 42 : HEAP32[i6 + (4 - i14) >> 2] = i11 | 1;
14269 42 : HEAP32[i5 >> 2] = i11;
14270 42 : STACKTOP = i1;
14271 42 : return;
14272 42 : }
14273 42 : i17 = i14 >>> 3;
14274 42 : if (i14 >>> 0 < 256) {
14275 42 : i2 = HEAP32[i6 + (8 - i14) >> 2] | 0;
14276 42 : i12 = HEAP32[i6 + (12 - i14) >> 2] | 0;
14277 42 : i13 = 12952 + (i17 << 1 << 2) | 0;
14278 42 : if ((i2 | 0) != (i13 | 0)) {
14279 42 : if (i2 >>> 0 < i15 >>> 0) {
14280 42 : _abort();
14281 42 : }
14282 42 : if ((HEAP32[i2 + 12 >> 2] | 0) != (i10 | 0)) {
14283 42 : _abort();
14284 42 : }
14285 42 : }
14286 42 : if ((i12 | 0) == (i2 | 0)) {
14287 42 : HEAP32[3228] = HEAP32[3228] & ~(1 << i17);
14288 42 : i2 = i10;
14289 42 : i12 = i11;
14290 42 : break;
14291 42 : }
14292 42 : if ((i12 | 0) != (i13 | 0)) {
14293 42 : if (i12 >>> 0 < i15 >>> 0) {
14294 42 : _abort();
14295 42 : }
14296 42 : i13 = i12 + 8 | 0;
14297 42 : if ((HEAP32[i13 >> 2] | 0) == (i10 | 0)) {
14298 42 : i16 = i13;
14299 42 : } else {
14300 42 : _abort();
14301 42 : }
14302 42 : } else {
14303 42 : i16 = i12 + 8 | 0;
14304 42 : }
14305 42 : HEAP32[i2 + 12 >> 2] = i12;
14306 42 : HEAP32[i16 >> 2] = i2;
14307 42 : i2 = i10;
14308 42 : i12 = i11;
14309 42 : break;
14310 42 : }
14311 42 : i16 = HEAP32[i6 + (24 - i14) >> 2] | 0;
14312 42 : i18 = HEAP32[i6 + (12 - i14) >> 2] | 0;
14313 42 : do {
14314 42 : if ((i18 | 0) == (i10 | 0)) {
14315 42 : i19 = 16 - i14 | 0;
14316 42 : i18 = i6 + (i19 + 4) | 0;
14317 42 : i17 = HEAP32[i18 >> 2] | 0;
14318 42 : if ((i17 | 0) == 0) {
14319 42 : i18 = i6 + i19 | 0;
14320 42 : i17 = HEAP32[i18 >> 2] | 0;
14321 42 : if ((i17 | 0) == 0) {
14322 42 : i13 = 0;
14323 42 : break;
14324 42 : }
14325 42 : }
14326 42 : while (1) {
14327 42 : i19 = i17 + 20 | 0;
14328 42 : i20 = HEAP32[i19 >> 2] | 0;
14329 42 : if ((i20 | 0) != 0) {
14330 42 : i17 = i20;
14331 42 : i18 = i19;
14332 42 : continue;
14333 42 : }
14334 42 : i20 = i17 + 16 | 0;
14335 42 : i19 = HEAP32[i20 >> 2] | 0;
14336 42 : if ((i19 | 0) == 0) {
14337 42 : break;
14338 42 : } else {
14339 42 : i17 = i19;
14340 42 : i18 = i20;
14341 42 : }
14342 42 : }
14343 42 : if (i18 >>> 0 < i15 >>> 0) {
14344 42 : _abort();
14345 42 : } else {
14346 42 : HEAP32[i18 >> 2] = 0;
14347 42 : i13 = i17;
14348 42 : break;
14349 42 : }
14350 42 : } else {
14351 42 : i17 = HEAP32[i6 + (8 - i14) >> 2] | 0;
14352 42 : if (i17 >>> 0 < i15 >>> 0) {
14353 42 : _abort();
14354 42 : }
14355 42 : i19 = i17 + 12 | 0;
14356 42 : if ((HEAP32[i19 >> 2] | 0) != (i10 | 0)) {
14357 42 : _abort();
14358 42 : }
14359 42 : i15 = i18 + 8 | 0;
14360 42 : if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
14361 42 : HEAP32[i19 >> 2] = i18;
14362 42 : HEAP32[i15 >> 2] = i17;
14363 42 : i13 = i18;
14364 42 : break;
14365 42 : } else {
14366 42 : _abort();
14367 42 : }
14368 42 : }
14369 42 : } while (0);
14370 42 : if ((i16 | 0) != 0) {
14371 42 : i15 = HEAP32[i6 + (28 - i14) >> 2] | 0;
14372 42 : i17 = 13216 + (i15 << 2) | 0;
14373 42 : if ((i10 | 0) == (HEAP32[i17 >> 2] | 0)) {
14374 42 : HEAP32[i17 >> 2] = i13;
14375 42 : if ((i13 | 0) == 0) {
14376 42 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i15);
14377 42 : i2 = i10;
14378 42 : i12 = i11;
14379 42 : break;
14380 42 : }
14381 42 : } else {
14382 42 : if (i16 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14383 42 : _abort();
14384 42 : }
14385 42 : i15 = i16 + 16 | 0;
14386 42 : if ((HEAP32[i15 >> 2] | 0) == (i10 | 0)) {
14387 42 : HEAP32[i15 >> 2] = i13;
14388 42 : } else {
14389 42 : HEAP32[i16 + 20 >> 2] = i13;
14390 42 : }
14391 42 : if ((i13 | 0) == 0) {
14392 42 : i2 = i10;
14393 42 : i12 = i11;
14394 42 : break;
14395 42 : }
14396 42 : }
14397 42 : if (i13 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14398 42 : _abort();
14399 42 : }
14400 42 : HEAP32[i13 + 24 >> 2] = i16;
14401 42 : i14 = 16 - i14 | 0;
14402 42 : i15 = HEAP32[i6 + i14 >> 2] | 0;
14403 42 : do {
14404 42 : if ((i15 | 0) != 0) {
14405 42 : if (i15 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14406 42 : _abort();
14407 42 : } else {
14408 42 : HEAP32[i13 + 16 >> 2] = i15;
14409 42 : HEAP32[i15 + 24 >> 2] = i13;
14410 42 : break;
14411 42 : }
14412 42 : }
14413 42 : } while (0);
14414 42 : i14 = HEAP32[i6 + (i14 + 4) >> 2] | 0;
14415 42 : if ((i14 | 0) != 0) {
14416 42 : if (i14 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14417 42 : _abort();
14418 42 : } else {
14419 42 : HEAP32[i13 + 20 >> 2] = i14;
14420 42 : HEAP32[i14 + 24 >> 2] = i13;
14421 42 : i2 = i10;
14422 42 : i12 = i11;
14423 42 : break;
14424 42 : }
14425 42 : } else {
14426 42 : i2 = i10;
14427 42 : i12 = i11;
14428 42 : }
14429 42 : } else {
14430 42 : i2 = i10;
14431 42 : i12 = i11;
14432 42 : }
14433 42 : } else {
14434 42 : i2 = i6;
14435 42 : i12 = i7;
14436 42 : }
14437 42 : } while (0);
14438 42 : i10 = HEAP32[12928 >> 2] | 0;
14439 42 : if (i5 >>> 0 < i10 >>> 0) {
14440 42 : _abort();
14441 42 : }
14442 42 : i11 = i6 + (i7 + 4) | 0;
14443 42 : i13 = HEAP32[i11 >> 2] | 0;
14444 42 : if ((i13 & 2 | 0) == 0) {
14445 42 : if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
14446 42 : i20 = (HEAP32[12924 >> 2] | 0) + i12 | 0;
14447 42 : HEAP32[12924 >> 2] = i20;
14448 42 : HEAP32[12936 >> 2] = i2;
14449 42 : HEAP32[i2 + 4 >> 2] = i20 | 1;
14450 42 : if ((i2 | 0) != (HEAP32[12932 >> 2] | 0)) {
14451 42 : STACKTOP = i1;
14452 42 : return;
14453 42 : }
14454 42 : HEAP32[12932 >> 2] = 0;
14455 42 : HEAP32[12920 >> 2] = 0;
14456 42 : STACKTOP = i1;
14457 42 : return;
14458 42 : }
14459 42 : if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
14460 42 : i20 = (HEAP32[12920 >> 2] | 0) + i12 | 0;
14461 42 : HEAP32[12920 >> 2] = i20;
14462 42 : HEAP32[12932 >> 2] = i2;
14463 42 : HEAP32[i2 + 4 >> 2] = i20 | 1;
14464 42 : HEAP32[i2 + i20 >> 2] = i20;
14465 42 : STACKTOP = i1;
14466 42 : return;
14467 42 : }
14468 42 : i12 = (i13 & -8) + i12 | 0;
14469 42 : i11 = i13 >>> 3;
14470 42 : do {
14471 42 : if (!(i13 >>> 0 < 256)) {
14472 42 : i9 = HEAP32[i6 + (i7 + 24) >> 2] | 0;
14473 42 : i11 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
14474 42 : do {
14475 42 : if ((i11 | 0) == (i5 | 0)) {
14476 42 : i13 = i6 + (i7 + 20) | 0;
14477 42 : i11 = HEAP32[i13 >> 2] | 0;
14478 42 : if ((i11 | 0) == 0) {
14479 42 : i13 = i6 + (i7 + 16) | 0;
14480 42 : i11 = HEAP32[i13 >> 2] | 0;
14481 42 : if ((i11 | 0) == 0) {
14482 42 : i8 = 0;
14483 42 : break;
14484 42 : }
14485 42 : }
14486 42 : while (1) {
14487 42 : i15 = i11 + 20 | 0;
14488 42 : i14 = HEAP32[i15 >> 2] | 0;
14489 42 : if ((i14 | 0) != 0) {
14490 42 : i11 = i14;
14491 42 : i13 = i15;
14492 42 : continue;
14493 42 : }
14494 42 : i14 = i11 + 16 | 0;
14495 42 : i15 = HEAP32[i14 >> 2] | 0;
14496 42 : if ((i15 | 0) == 0) {
14497 42 : break;
14498 42 : } else {
14499 42 : i11 = i15;
14500 42 : i13 = i14;
14501 42 : }
14502 42 : }
14503 42 : if (i13 >>> 0 < i10 >>> 0) {
14504 42 : _abort();
14505 42 : } else {
14506 42 : HEAP32[i13 >> 2] = 0;
14507 42 : i8 = i11;
14508 42 : break;
14509 42 : }
14510 42 : } else {
14511 42 : i13 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
14512 42 : if (i13 >>> 0 < i10 >>> 0) {
14513 42 : _abort();
14514 42 : }
14515 42 : i10 = i13 + 12 | 0;
14516 42 : if ((HEAP32[i10 >> 2] | 0) != (i5 | 0)) {
14517 42 : _abort();
14518 42 : }
14519 42 : i14 = i11 + 8 | 0;
14520 42 : if ((HEAP32[i14 >> 2] | 0) == (i5 | 0)) {
14521 42 : HEAP32[i10 >> 2] = i11;
14522 42 : HEAP32[i14 >> 2] = i13;
14523 42 : i8 = i11;
14524 42 : break;
14525 42 : } else {
14526 42 : _abort();
14527 42 : }
14528 42 : }
14529 42 : } while (0);
14530 42 : if ((i9 | 0) != 0) {
14531 42 : i10 = HEAP32[i6 + (i7 + 28) >> 2] | 0;
14532 42 : i11 = 13216 + (i10 << 2) | 0;
14533 42 : if ((i5 | 0) == (HEAP32[i11 >> 2] | 0)) {
14534 42 : HEAP32[i11 >> 2] = i8;
14535 42 : if ((i8 | 0) == 0) {
14536 42 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
14537 42 : break;
14538 42 : }
14539 42 : } else {
14540 42 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14541 42 : _abort();
14542 42 : }
14543 42 : i10 = i9 + 16 | 0;
14544 42 : if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
14545 42 : HEAP32[i10 >> 2] = i8;
14546 42 : } else {
14547 42 : HEAP32[i9 + 20 >> 2] = i8;
14548 42 : }
14549 42 : if ((i8 | 0) == 0) {
14550 42 : break;
14551 42 : }
14552 42 : }
14553 42 : if (i8 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14554 42 : _abort();
14555 42 : }
14556 42 : HEAP32[i8 + 24 >> 2] = i9;
14557 42 : i5 = HEAP32[i6 + (i7 + 16) >> 2] | 0;
14558 42 : do {
14559 42 : if ((i5 | 0) != 0) {
14560 42 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14561 42 : _abort();
14562 42 : } else {
14563 42 : HEAP32[i8 + 16 >> 2] = i5;
14564 42 : HEAP32[i5 + 24 >> 2] = i8;
14565 42 : break;
14566 42 : }
14567 42 : }
14568 42 : } while (0);
14569 42 : i5 = HEAP32[i6 + (i7 + 20) >> 2] | 0;
14570 42 : if ((i5 | 0) != 0) {
14571 42 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14572 42 : _abort();
14573 42 : } else {
14574 42 : HEAP32[i8 + 20 >> 2] = i5;
14575 42 : HEAP32[i5 + 24 >> 2] = i8;
14576 42 : break;
14577 42 : }
14578 42 : }
14579 42 : }
14580 42 : } else {
14581 42 : i8 = HEAP32[i6 + (i7 + 8) >> 2] | 0;
14582 42 : i6 = HEAP32[i6 + (i7 + 12) >> 2] | 0;
14583 42 : i7 = 12952 + (i11 << 1 << 2) | 0;
14584 42 : if ((i8 | 0) != (i7 | 0)) {
14585 42 : if (i8 >>> 0 < i10 >>> 0) {
14586 42 : _abort();
14587 42 : }
14588 42 : if ((HEAP32[i8 + 12 >> 2] | 0) != (i5 | 0)) {
14589 42 : _abort();
14590 42 : }
14591 42 : }
14592 42 : if ((i6 | 0) == (i8 | 0)) {
14593 42 : HEAP32[3228] = HEAP32[3228] & ~(1 << i11);
14594 42 : break;
14595 42 : }
14596 42 : if ((i6 | 0) != (i7 | 0)) {
14597 42 : if (i6 >>> 0 < i10 >>> 0) {
14598 42 : _abort();
14599 42 : }
14600 42 : i7 = i6 + 8 | 0;
14601 42 : if ((HEAP32[i7 >> 2] | 0) == (i5 | 0)) {
14602 42 : i9 = i7;
14603 42 : } else {
14604 42 : _abort();
14605 42 : }
14606 42 : } else {
14607 42 : i9 = i6 + 8 | 0;
14608 42 : }
14609 42 : HEAP32[i8 + 12 >> 2] = i6;
14610 42 : HEAP32[i9 >> 2] = i8;
14611 42 : }
14612 42 : } while (0);
14613 42 : HEAP32[i2 + 4 >> 2] = i12 | 1;
14614 42 : HEAP32[i2 + i12 >> 2] = i12;
14615 42 : if ((i2 | 0) == (HEAP32[12932 >> 2] | 0)) {
14616 42 : HEAP32[12920 >> 2] = i12;
14617 42 : STACKTOP = i1;
14618 42 : return;
14619 42 : }
14620 42 : } else {
14621 42 : HEAP32[i11 >> 2] = i13 & -2;
14622 42 : HEAP32[i2 + 4 >> 2] = i12 | 1;
14623 42 : HEAP32[i2 + i12 >> 2] = i12;
14624 42 : }
14625 42 : i6 = i12 >>> 3;
14626 42 : if (i12 >>> 0 < 256) {
14627 42 : i7 = i6 << 1;
14628 42 : i5 = 12952 + (i7 << 2) | 0;
14629 42 : i8 = HEAP32[3228] | 0;
14630 42 : i6 = 1 << i6;
14631 42 : if ((i8 & i6 | 0) != 0) {
14632 42 : i7 = 12952 + (i7 + 2 << 2) | 0;
14633 42 : i6 = HEAP32[i7 >> 2] | 0;
14634 42 : if (i6 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14635 42 : _abort();
14636 42 : } else {
14637 42 : i4 = i7;
14638 42 : i3 = i6;
14639 42 : }
14640 42 : } else {
14641 42 : HEAP32[3228] = i8 | i6;
14642 42 : i4 = 12952 + (i7 + 2 << 2) | 0;
14643 42 : i3 = i5;
14644 42 : }
14645 42 : HEAP32[i4 >> 2] = i2;
14646 42 : HEAP32[i3 + 12 >> 2] = i2;
14647 42 : HEAP32[i2 + 8 >> 2] = i3;
14648 42 : HEAP32[i2 + 12 >> 2] = i5;
14649 42 : STACKTOP = i1;
14650 42 : return;
14651 42 : }
14652 42 : i3 = i12 >>> 8;
14653 42 : if ((i3 | 0) != 0) {
14654 42 : if (i12 >>> 0 > 16777215) {
14655 42 : i3 = 31;
14656 42 : } else {
14657 42 : i19 = (i3 + 1048320 | 0) >>> 16 & 8;
14658 42 : i20 = i3 << i19;
14659 42 : i18 = (i20 + 520192 | 0) >>> 16 & 4;
14660 42 : i20 = i20 << i18;
14661 42 : i3 = (i20 + 245760 | 0) >>> 16 & 2;
14662 42 : i3 = 14 - (i18 | i19 | i3) + (i20 << i3 >>> 15) | 0;
14663 42 : i3 = i12 >>> (i3 + 7 | 0) & 1 | i3 << 1;
14664 42 : }
14665 42 : } else {
14666 42 : i3 = 0;
14667 42 : }
14668 42 : i6 = 13216 + (i3 << 2) | 0;
14669 42 : HEAP32[i2 + 28 >> 2] = i3;
14670 42 : HEAP32[i2 + 20 >> 2] = 0;
14671 42 : HEAP32[i2 + 16 >> 2] = 0;
14672 42 : i5 = HEAP32[12916 >> 2] | 0;
14673 42 : i4 = 1 << i3;
14674 42 : if ((i5 & i4 | 0) == 0) {
14675 42 : HEAP32[12916 >> 2] = i5 | i4;
14676 42 : HEAP32[i6 >> 2] = i2;
14677 42 : HEAP32[i2 + 24 >> 2] = i6;
14678 42 : HEAP32[i2 + 12 >> 2] = i2;
14679 42 : HEAP32[i2 + 8 >> 2] = i2;
14680 42 : STACKTOP = i1;
14681 42 : return;
14682 42 : }
14683 42 : i4 = HEAP32[i6 >> 2] | 0;
14684 42 : if ((i3 | 0) == 31) {
14685 42 : i3 = 0;
14686 42 : } else {
14687 42 : i3 = 25 - (i3 >>> 1) | 0;
14688 42 : }
14689 42 : L194 : do {
14690 42 : if ((HEAP32[i4 + 4 >> 2] & -8 | 0) != (i12 | 0)) {
14691 42 : i3 = i12 << i3;
14692 42 : i6 = i4;
14693 42 : while (1) {
14694 42 : i5 = i6 + (i3 >>> 31 << 2) + 16 | 0;
14695 42 : i4 = HEAP32[i5 >> 2] | 0;
14696 42 : if ((i4 | 0) == 0) {
14697 42 : break;
14698 42 : }
14699 42 : if ((HEAP32[i4 + 4 >> 2] & -8 | 0) == (i12 | 0)) {
14700 42 : break L194;
14701 42 : } else {
14702 42 : i3 = i3 << 1;
14703 42 : i6 = i4;
14704 42 : }
14705 42 : }
14706 42 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
14707 42 : _abort();
14708 42 : }
14709 42 : HEAP32[i5 >> 2] = i2;
14710 42 : HEAP32[i2 + 24 >> 2] = i6;
14711 42 : HEAP32[i2 + 12 >> 2] = i2;
14712 42 : HEAP32[i2 + 8 >> 2] = i2;
14713 42 : STACKTOP = i1;
14714 42 : return;
14715 42 : }
14716 42 : } while (0);
14717 42 : i3 = i4 + 8 | 0;
14718 42 : i6 = HEAP32[i3 >> 2] | 0;
14719 42 : i5 = HEAP32[12928 >> 2] | 0;
14720 42 : if (i4 >>> 0 < i5 >>> 0) {
14721 42 : _abort();
14722 42 : }
14723 42 : if (i6 >>> 0 < i5 >>> 0) {
14724 42 : _abort();
14725 42 : }
14726 42 : HEAP32[i6 + 12 >> 2] = i2;
14727 42 : HEAP32[i3 >> 2] = i2;
14728 42 : HEAP32[i2 + 8 >> 2] = i6;
14729 42 : HEAP32[i2 + 12 >> 2] = i4;
14730 42 : HEAP32[i2 + 24 >> 2] = 0;
14731 42 : STACKTOP = i1;
14732 42 : return;
14733 42 : }
14734 45175 : function _singlestep(i2) {
14735 45175 : i2 = i2 | 0;
14736 45175 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
14737 45175 : i1 = STACKTOP;
14738 45175 : STACKTOP = STACKTOP + 16 | 0;
14739 45175 : i14 = i1;
14740 45175 : i3 = i2 + 12 | 0;
14741 45175 : i8 = HEAP32[i3 >> 2] | 0;
14742 45175 : i6 = i8 + 61 | 0;
14743 45175 : switch (HEAPU8[i6] | 0) {
14744 45175 : case 0:
14745 45175 : {
14746 45175 : if ((HEAP32[i8 + 84 >> 2] | 0) != 0) {
14747 45175 : i21 = i8 + 16 | 0;
14748 45175 : i22 = HEAP32[i21 >> 2] | 0;
14749 45175 : _propagatemark(i8);
14750 45175 : i22 = (HEAP32[i21 >> 2] | 0) - i22 | 0;
14751 45175 : STACKTOP = i1;
14752 45175 : return i22 | 0;
14753 45175 : }
14754 45175 : HEAP8[i6] = 1;
14755 45175 : i6 = i8 + 20 | 0;
14756 45175 : HEAP32[i6 >> 2] = HEAP32[i8 + 16 >> 2];
14757 45175 : i8 = HEAP32[i3 >> 2] | 0;
14758 45175 : i7 = i8 + 16 | 0;
14759 45175 : i14 = HEAP32[i7 >> 2] | 0;
14760 45175 : if ((i2 | 0) != 0 ? !((HEAP8[i2 + 5 | 0] & 3) == 0) : 0) {
14761 45175 : _reallymarkobject(i8, i2);
14762 45175 : }
14763 45175 : if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i13 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i13 + 5 | 0] & 3) == 0)) : 0) {
14764 45175 : _reallymarkobject(i8, i13);
14765 45175 : }
14766 45175 : _markmt(i8);
14767 45175 : i13 = i8 + 112 | 0;
14768 45175 : i15 = HEAP32[i8 + 132 >> 2] | 0;
14769 45175 : if ((i15 | 0) != (i13 | 0)) {
14770 45175 : do {
14771 45175 : if (((HEAP8[i15 + 5 | 0] & 7) == 0 ? (i12 = HEAP32[i15 + 8 >> 2] | 0, (HEAP32[i12 + 8 >> 2] & 64 | 0) != 0) : 0) ? (i11 = HEAP32[i12 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
14772 45175 : _reallymarkobject(i8, i11);
14773 45175 : }
14774 45175 : i15 = HEAP32[i15 + 20 >> 2] | 0;
14775 45175 : } while ((i15 | 0) != (i13 | 0));
14776 45175 : }
14777 45175 : i16 = i8 + 84 | 0;
14778 45175 : if ((HEAP32[i16 >> 2] | 0) != 0) {
14779 45175 : do {
14780 45175 : _propagatemark(i8);
14781 45175 : } while ((HEAP32[i16 >> 2] | 0) != 0);
14782 45175 : }
14783 45175 : i17 = (HEAP32[i7 >> 2] | 0) - i14 | 0;
14784 45175 : i11 = i8 + 92 | 0;
14785 45175 : i12 = HEAP32[i11 >> 2] | 0;
14786 45175 : i21 = i8 + 88 | 0;
14787 45175 : i22 = HEAP32[i21 >> 2] | 0;
14788 45175 : i15 = i8 + 96 | 0;
14789 45175 : i13 = HEAP32[i15 >> 2] | 0;
14790 45175 : HEAP32[i15 >> 2] = 0;
14791 45175 : HEAP32[i21 >> 2] = 0;
14792 45175 : HEAP32[i11 >> 2] = 0;
14793 45175 : HEAP32[i16 >> 2] = i22;
14794 45175 : if ((i22 | 0) != 0) {
14795 45175 : do {
14796 45175 : _propagatemark(i8);
14797 45175 : } while ((HEAP32[i16 >> 2] | 0) != 0);
14798 45175 : }
14799 45175 : HEAP32[i16 >> 2] = i12;
14800 45175 : if ((i12 | 0) != 0) {
14801 45175 : do {
14802 45175 : _propagatemark(i8);
14803 45175 : } while ((HEAP32[i16 >> 2] | 0) != 0);
14804 45175 : }
14805 45175 : HEAP32[i16 >> 2] = i13;
14806 45175 : if ((i13 | 0) != 0) {
14807 45175 : do {
14808 45175 : _propagatemark(i8);
14809 45175 : } while ((HEAP32[i16 >> 2] | 0) != 0);
14810 45175 : }
14811 45175 : i18 = HEAP32[i7 >> 2] | 0;
14812 45175 : while (1) {
14813 45175 : i13 = HEAP32[i15 >> 2] | 0;
14814 45175 : HEAP32[i15 >> 2] = 0;
14815 45175 : i12 = 0;
14816 45175 : L42 : while (1) {
14817 45175 : i14 = i13;
14818 45175 : while (1) {
14819 45175 : if ((i14 | 0) == 0) {
14820 45175 : break L42;
14821 45175 : }
14822 45175 : i13 = HEAP32[i14 + 24 >> 2] | 0;
14823 45175 : if ((_traverseephemeron(i8, i14) | 0) == 0) {
14824 45175 : i14 = i13;
14825 45175 : } else {
14826 45175 : break;
14827 45175 : }
14828 45175 : }
14829 45175 : if ((HEAP32[i16 >> 2] | 0) == 0) {
14830 45175 : i12 = 1;
14831 45175 : continue;
14832 45175 : }
14833 45175 : while (1) {
14834 45175 : _propagatemark(i8);
14835 45175 : if ((HEAP32[i16 >> 2] | 0) == 0) {
14836 45175 : i12 = 1;
14837 45175 : continue L42;
14838 45175 : }
14839 45175 : }
14840 45175 : }
14841 45175 : if ((i12 | 0) == 0) {
14842 45175 : break;
14843 45175 : }
14844 45175 : }
14845 45175 : _clearvalues(i8, HEAP32[i11 >> 2] | 0, 0);
14846 45175 : i14 = i8 + 100 | 0;
14847 45175 : _clearvalues(i8, HEAP32[i14 >> 2] | 0, 0);
14848 45175 : i13 = HEAP32[i11 >> 2] | 0;
14849 45175 : i12 = HEAP32[i14 >> 2] | 0;
14850 45175 : i21 = HEAP32[i7 >> 2] | 0;
14851 45175 : i20 = HEAP32[i3 >> 2] | 0;
14852 45175 : i19 = i20 + 104 | 0;
14853 45175 : while (1) {
14854 45175 : i22 = HEAP32[i19 >> 2] | 0;
14855 45175 : if ((i22 | 0) == 0) {
14856 45175 : break;
14857 45175 : } else {
14858 45175 : i19 = i22;
14859 45175 : }
14860 45175 : }
14861 45175 : i17 = i17 - i18 + i21 | 0;
14862 45175 : i20 = i20 + 72 | 0;
14863 45175 : i21 = HEAP32[i20 >> 2] | 0;
14864 45175 : L55 : do {
14865 45175 : if ((i21 | 0) != 0) {
14866 45175 : while (1) {
14867 45175 : i18 = i21;
14868 45175 : while (1) {
14869 45175 : i22 = i18 + 5 | 0;
14870 45175 : i21 = HEAP8[i22] | 0;
14871 45175 : if ((i21 & 3) == 0) {
14872 45175 : break;
14873 45175 : }
14874 45175 : HEAP8[i22] = i21 & 255 | 8;
14875 45175 : HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
14876 45175 : HEAP32[i18 >> 2] = HEAP32[i19 >> 2];
14877 45175 : HEAP32[i19 >> 2] = i18;
14878 45175 : i19 = HEAP32[i20 >> 2] | 0;
14879 45175 : if ((i19 | 0) == 0) {
14880 45175 : break L55;
14881 45175 : } else {
14882 45175 : i22 = i18;
14883 45175 : i18 = i19;
14884 45175 : i19 = i22;
14885 45175 : }
14886 45175 : }
14887 45175 : i21 = HEAP32[i18 >> 2] | 0;
14888 45175 : if ((i21 | 0) == 0) {
14889 45175 : break;
14890 45175 : } else {
14891 45175 : i20 = i18;
14892 45175 : }
14893 45175 : }
14894 45175 : }
14895 45175 : } while (0);
14896 45175 : i19 = HEAP32[i8 + 104 >> 2] | 0;
14897 45175 : if ((i19 | 0) != 0) {
14898 45175 : i18 = i8 + 60 | 0;
14899 45175 : do {
14900 45175 : i22 = i19 + 5 | 0;
14901 45175 : HEAP8[i22] = HEAP8[i18] & 3 | HEAP8[i22] & 184;
14902 45175 : _reallymarkobject(i8, i19);
14903 45175 : i19 = HEAP32[i19 >> 2] | 0;
14904 45175 : } while ((i19 | 0) != 0);
14905 45175 : }
14906 45175 : if ((HEAP32[i16 >> 2] | 0) != 0) {
14907 45175 : do {
14908 45175 : _propagatemark(i8);
14909 45175 : } while ((HEAP32[i16 >> 2] | 0) != 0);
14910 45175 : }
14911 45175 : i18 = HEAP32[i7 >> 2] | 0;
14912 45175 : while (1) {
14913 45175 : i20 = HEAP32[i15 >> 2] | 0;
14914 45175 : HEAP32[i15 >> 2] = 0;
14915 45175 : i19 = 0;
14916 45175 : L74 : while (1) {
14917 45175 : i21 = i20;
14918 45175 : while (1) {
14919 45175 : if ((i21 | 0) == 0) {
14920 45175 : break L74;
14921 45175 : }
14922 45175 : i20 = HEAP32[i21 + 24 >> 2] | 0;
14923 45175 : if ((_traverseephemeron(i8, i21) | 0) == 0) {
14924 45175 : i21 = i20;
14925 45175 : } else {
14926 45175 : break;
14927 45175 : }
14928 45175 : }
14929 45175 : if ((HEAP32[i16 >> 2] | 0) == 0) {
14930 45175 : i19 = 1;
14931 45175 : continue;
14932 45175 : }
14933 45175 : while (1) {
14934 45175 : _propagatemark(i8);
14935 45175 : if ((HEAP32[i16 >> 2] | 0) == 0) {
14936 45175 : i19 = 1;
14937 45175 : continue L74;
14938 45175 : }
14939 45175 : }
14940 45175 : }
14941 45175 : if ((i19 | 0) == 0) {
14942 45175 : break;
14943 45175 : }
14944 45175 : }
14945 45175 : i16 = i17 - i18 | 0;
14946 45175 : i15 = HEAP32[i15 >> 2] | 0;
14947 45175 : if ((i15 | 0) != 0) {
14948 45175 : do {
14949 45175 : i22 = 1 << HEAPU8[i15 + 7 | 0];
14950 45175 : i19 = HEAP32[i15 + 16 >> 2] | 0;
14951 45175 : i17 = i19 + (i22 << 5) | 0;
14952 45175 : if ((i22 | 0) > 0) {
14953 45175 : do {
14954 45175 : i18 = i19 + 8 | 0;
14955 45175 : do {
14956 45175 : if ((HEAP32[i18 >> 2] | 0) != 0 ? (i9 = i19 + 24 | 0, i10 = HEAP32[i9 >> 2] | 0, (i10 & 64 | 0) != 0) : 0) {
14957 45175 : i20 = HEAP32[i19 + 16 >> 2] | 0;
14958 45175 : if ((i10 & 15 | 0) == 4) {
14959 45175 : if ((i20 | 0) == 0) {
14960 45175 : break;
14961 45175 : }
14962 45175 : if ((HEAP8[i20 + 5 | 0] & 3) == 0) {
14963 45175 : break;
14964 45175 : }
14965 45175 : _reallymarkobject(i8, i20);
14966 45175 : break;
14967 45175 : } else {
14968 45175 : i20 = i20 + 5 | 0;
14969 45175 : if ((HEAP8[i20] & 3) == 0) {
14970 45175 : break;
14971 45175 : }
14972 45175 : HEAP32[i18 >> 2] = 0;
14973 45175 : if ((HEAP8[i20] & 3) == 0) {
14974 45175 : break;
14975 45175 : }
14976 45175 : HEAP32[i9 >> 2] = 11;
14977 45175 : break;
14978 45175 : }
14979 45175 : }
14980 45175 : } while (0);
14981 45175 : i19 = i19 + 32 | 0;
14982 45175 : } while (i19 >>> 0 < i17 >>> 0);
14983 45175 : }
14984 45175 : i15 = HEAP32[i15 + 24 >> 2] | 0;
14985 45175 : } while ((i15 | 0) != 0);
14986 45175 : }
14987 45175 : i10 = HEAP32[i14 >> 2] | 0;
14988 45175 : if ((i10 | 0) != 0) {
14989 45175 : do {
14990 45175 : i22 = 1 << HEAPU8[i10 + 7 | 0];
14991 45175 : i17 = HEAP32[i10 + 16 >> 2] | 0;
14992 45175 : i9 = i17 + (i22 << 5) | 0;
14993 45175 : if ((i22 | 0) > 0) {
14994 45175 : do {
14995 45175 : i15 = i17 + 8 | 0;
14996 45175 : do {
14997 45175 : if ((HEAP32[i15 >> 2] | 0) != 0 ? (i5 = i17 + 24 | 0, i4 = HEAP32[i5 >> 2] | 0, (i4 & 64 | 0) != 0) : 0) {
14998 45175 : i18 = HEAP32[i17 + 16 >> 2] | 0;
14999 45175 : if ((i4 & 15 | 0) == 4) {
15000 45175 : if ((i18 | 0) == 0) {
15001 45175 : break;
15002 45175 : }
15003 45175 : if ((HEAP8[i18 + 5 | 0] & 3) == 0) {
15004 45175 : break;
15005 45175 : }
15006 45175 : _reallymarkobject(i8, i18);
15007 45175 : break;
15008 45175 : } else {
15009 45175 : i18 = i18 + 5 | 0;
15010 45175 : if ((HEAP8[i18] & 3) == 0) {
15011 45175 : break;
15012 45175 : }
15013 45175 : HEAP32[i15 >> 2] = 0;
15014 45175 : if ((HEAP8[i18] & 3) == 0) {
15015 45175 : break;
15016 45175 : }
15017 45175 : HEAP32[i5 >> 2] = 11;
15018 45175 : break;
15019 45175 : }
15020 45175 : }
15021 45175 : } while (0);
15022 45175 : i17 = i17 + 32 | 0;
15023 45175 : } while (i17 >>> 0 < i9 >>> 0);
15024 45175 : }
15025 45175 : i10 = HEAP32[i10 + 24 >> 2] | 0;
15026 45175 : } while ((i10 | 0) != 0);
15027 45175 : }
15028 45175 : _clearvalues(i8, HEAP32[i11 >> 2] | 0, i13);
15029 45175 : _clearvalues(i8, HEAP32[i14 >> 2] | 0, i12);
15030 45175 : i4 = i8 + 60 | 0;
15031 45175 : HEAP8[i4] = HEAPU8[i4] ^ 3;
15032 45175 : i4 = i16 + (HEAP32[i7 >> 2] | 0) | 0;
15033 45175 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i4;
15034 45175 : i3 = HEAP32[i3 >> 2] | 0;
15035 45175 : HEAP8[i3 + 61 | 0] = 2;
15036 45175 : HEAP32[i3 + 64 >> 2] = 0;
15037 45175 : i7 = i3 + 72 | 0;
15038 45175 : i5 = 0;
15039 45175 : do {
15040 45175 : i5 = i5 + 1 | 0;
15041 45175 : i6 = _sweeplist(i2, i7, 1) | 0;
15042 45175 : } while ((i6 | 0) == (i7 | 0));
15043 45175 : HEAP32[i3 + 80 >> 2] = i6;
15044 45175 : i6 = i3 + 68 | 0;
15045 45175 : i7 = 0;
15046 45175 : do {
15047 45175 : i7 = i7 + 1 | 0;
15048 45175 : i8 = _sweeplist(i2, i6, 1) | 0;
15049 45175 : } while ((i8 | 0) == (i6 | 0));
15050 45175 : HEAP32[i3 + 76 >> 2] = i8;
15051 45175 : i22 = ((i7 + i5 | 0) * 5 | 0) + i4 | 0;
15052 45175 : STACKTOP = i1;
15053 45175 : return i22 | 0;
15054 45175 : }
15055 45175 : case 2:
15056 45175 : {
15057 45175 : i3 = i8 + 64 | 0;
15058 45175 : i4 = i8 + 32 | 0;
15059 45175 : i8 = i8 + 24 | 0;
15060 45175 : i5 = 0;
15061 45175 : while (1) {
15062 45175 : i10 = HEAP32[i3 >> 2] | 0;
15063 45175 : i11 = i10 + i5 | 0;
15064 45175 : i9 = HEAP32[i4 >> 2] | 0;
15065 45175 : if ((i11 | 0) >= (i9 | 0)) {
15066 45175 : i2 = i10;
15067 45175 : break;
15068 45175 : }
15069 45175 : _sweeplist(i2, (HEAP32[i8 >> 2] | 0) + (i11 << 2) | 0, -3) | 0;
15070 45175 : i5 = i5 + 1 | 0;
15071 45175 : if ((i5 | 0) >= 80) {
15072 45175 : i7 = 96;
15073 45175 : break;
15074 45175 : }
15075 45175 : }
15076 45175 : if ((i7 | 0) == 96) {
15077 45175 : i2 = HEAP32[i3 >> 2] | 0;
15078 45175 : i9 = HEAP32[i4 >> 2] | 0;
15079 45175 : }
15080 45175 : i22 = i2 + i5 | 0;
15081 45175 : HEAP32[i3 >> 2] = i22;
15082 45175 : if ((i22 | 0) >= (i9 | 0)) {
15083 45175 : HEAP8[i6] = 3;
15084 45175 : }
15085 45175 : i22 = i5 * 5 | 0;
15086 45175 : STACKTOP = i1;
15087 45175 : return i22 | 0;
15088 45175 : }
15089 45175 : case 5:
15090 45175 : {
15091 45175 : i2 = i8 + 16 | 0;
15092 45175 : HEAP32[i2 >> 2] = HEAP32[i8 + 32 >> 2] << 2;
15093 45175 : i22 = i8 + 84 | 0;
15094 45175 : i3 = i8 + 172 | 0;
15095 45175 : HEAP32[i22 + 0 >> 2] = 0;
15096 45175 : HEAP32[i22 + 4 >> 2] = 0;
15097 45175 : HEAP32[i22 + 8 >> 2] = 0;
15098 45175 : HEAP32[i22 + 12 >> 2] = 0;
15099 45175 : HEAP32[i22 + 16 >> 2] = 0;
15100 45175 : i3 = HEAP32[i3 >> 2] | 0;
15101 45175 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
15102 45175 : _reallymarkobject(i8, i3);
15103 45175 : }
15104 45175 : if ((HEAP32[i8 + 48 >> 2] & 64 | 0) != 0 ? (i15 = HEAP32[i8 + 40 >> 2] | 0, !((HEAP8[i15 + 5 | 0] & 3) == 0)) : 0) {
15105 45175 : _reallymarkobject(i8, i15);
15106 45175 : }
15107 45175 : _markmt(i8);
15108 45175 : i4 = HEAP32[i8 + 104 >> 2] | 0;
15109 45175 : if ((i4 | 0) != 0) {
15110 45175 : i3 = i8 + 60 | 0;
15111 45175 : do {
15112 45175 : i22 = i4 + 5 | 0;
15113 45175 : HEAP8[i22] = HEAP8[i3] & 3 | HEAP8[i22] & 184;
15114 45175 : _reallymarkobject(i8, i4);
15115 45175 : i4 = HEAP32[i4 >> 2] | 0;
15116 45175 : } while ((i4 | 0) != 0);
15117 45175 : }
15118 45175 : HEAP8[i6] = 0;
15119 45175 : i22 = HEAP32[i2 >> 2] | 0;
15120 45175 : STACKTOP = i1;
15121 45175 : return i22 | 0;
15122 45175 : }
15123 45175 : case 3:
15124 45175 : {
15125 45175 : i3 = i8 + 80 | 0;
15126 45175 : i4 = HEAP32[i3 >> 2] | 0;
15127 45175 : if ((i4 | 0) == 0) {
15128 45175 : HEAP8[i6] = 4;
15129 45175 : i22 = 0;
15130 45175 : STACKTOP = i1;
15131 45175 : return i22 | 0;
15132 45175 : } else {
15133 45175 : HEAP32[i3 >> 2] = _sweeplist(i2, i4, 80) | 0;
15134 45175 : i22 = 400;
15135 45175 : STACKTOP = i1;
15136 45175 : return i22 | 0;
15137 45175 : }
15138 45175 : }
15139 45175 : case 4:
15140 45175 : {
15141 45175 : i4 = i8 + 76 | 0;
15142 45175 : i5 = HEAP32[i4 >> 2] | 0;
15143 45175 : if ((i5 | 0) != 0) {
15144 45175 : HEAP32[i4 >> 2] = _sweeplist(i2, i5, 80) | 0;
15145 45175 : i22 = 400;
15146 45175 : STACKTOP = i1;
15147 45175 : return i22 | 0;
15148 45175 : }
15149 45175 : HEAP32[i14 >> 2] = HEAP32[i8 + 172 >> 2];
15150 45175 : _sweeplist(i2, i14, 1) | 0;
15151 45175 : i3 = HEAP32[i3 >> 2] | 0;
15152 45175 : if ((HEAP8[i3 + 62 | 0] | 0) != 1) {
15153 45175 : i4 = (HEAP32[i3 + 32 >> 2] | 0) / 2 | 0;
15154 45175 : if ((HEAP32[i3 + 28 >> 2] | 0) >>> 0 < i4 >>> 0) {
15155 45175 : _luaS_resize(i2, i4);
15156 45175 : }
15157 45175 : i21 = i3 + 144 | 0;
15158 45175 : i22 = i3 + 152 | 0;
15159 45175 : HEAP32[i21 >> 2] = _luaM_realloc_(i2, HEAP32[i21 >> 2] | 0, HEAP32[i22 >> 2] | 0, 0) | 0;
15160 45175 : HEAP32[i22 >> 2] = 0;
15161 45175 : }
15162 45175 : HEAP8[i6] = 5;
15163 45175 : i22 = 5;
15164 45175 : STACKTOP = i1;
15165 45175 : return i22 | 0;
15166 45175 : }
15167 45175 : default:
15168 45175 : {
15169 45175 : i22 = 0;
15170 45175 : STACKTOP = i1;
15171 45175 : return i22 | 0;
15172 45175 : }
15173 45175 : }
15174 45175 : return 0;
15175 45175 : }
15176 1 : function _pmain(i3) {
15177 1 : i3 = i3 | 0;
15178 1 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
15179 1 : i1 = STACKTOP;
15180 1 : STACKTOP = STACKTOP + 16 | 0;
15181 1 : i2 = i1;
15182 1 : i7 = _lua_tointegerx(i3, 1, 0) | 0;
15183 1 : i4 = _lua_touserdata(i3, 2) | 0;
15184 1 : i5 = HEAP32[i4 >> 2] | 0;
15185 1 : if ((i5 | 0) != 0 ? (HEAP8[i5] | 0) != 0 : 0) {
15186 1 : HEAP32[20] = i5;
15187 1 : }
15188 1 : i12 = HEAP32[i4 + 4 >> 2] | 0;
15189 1 : do {
15190 1 : if ((i12 | 0) == 0) {
15191 1 : i5 = 0;
15192 1 : i6 = 0;
15193 1 : i8 = 0;
15194 1 : i9 = 1;
15195 1 : i10 = 1;
15196 1 : } else {
15197 1 : i9 = 0;
15198 1 : i8 = 0;
15199 1 : i11 = 0;
15200 1 : i6 = 0;
15201 1 : i5 = 1;
15202 1 : L6 : while (1) {
15203 1 : if ((HEAP8[i12] | 0) != 45) {
15204 1 : i10 = 18;
15205 1 : break;
15206 1 : }
15207 1 : switch (HEAP8[i12 + 1 | 0] | 0) {
15208 1 : case 108:
15209 1 : {
15210 1 : i10 = 12;
15211 1 : break;
15212 1 : }
15213 1 : case 69:
15214 1 : {
15215 1 : i9 = 1;
15216 1 : break;
15217 1 : }
15218 1 : case 45:
15219 1 : {
15220 1 : i10 = 7;
15221 1 : break L6;
15222 1 : }
15223 1 : case 105:
15224 1 : {
15225 1 : if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
15226 1 : i11 = 1;
15227 1 : i6 = 1;
15228 1 : } else {
15229 1 : i5 = -1;
15230 1 : break L6;
15231 1 : }
15232 1 : break;
15233 1 : }
15234 1 : case 101:
15235 1 : {
15236 1 : i8 = 1;
15237 1 : i10 = 12;
15238 1 : break;
15239 1 : }
15240 1 : case 118:
15241 1 : {
15242 1 : if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
15243 1 : i11 = 1;
15244 1 : } else {
15245 1 : i5 = -1;
15246 1 : break L6;
15247 1 : }
15248 1 : break;
15249 1 : }
15250 1 : case 0:
15251 1 : {
15252 1 : i10 = 18;
15253 1 : break L6;
15254 1 : }
15255 1 : default:
15256 1 : {
15257 1 : i10 = 16;
15258 1 : break L6;
15259 1 : }
15260 1 : }
15261 1 : if ((i10 | 0) == 12) {
15262 1 : i10 = 0;
15263 1 : if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
15264 1 : i12 = i5 + 1 | 0;
15265 1 : i13 = HEAP32[i4 + (i12 << 2) >> 2] | 0;
15266 1 : if ((i13 | 0) == 0) {
15267 1 : i10 = 15;
15268 1 : break;
15269 1 : }
15270 1 : if ((HEAP8[i13] | 0) == 45) {
15271 1 : i10 = 15;
15272 1 : break;
15273 1 : } else {
15274 1 : i5 = i12;
15275 1 : }
15276 1 : }
15277 1 : }
15278 1 : i5 = i5 + 1 | 0;
15279 1 : i12 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
15280 1 : if ((i12 | 0) == 0) {
15281 1 : i5 = 0;
15282 1 : i12 = i9;
15283 1 : i10 = 23;
15284 1 : break;
15285 1 : }
15286 1 : }
15287 1 : if ((i10 | 0) == 7) {
15288 1 : if ((HEAP8[i12 + 2 | 0] | 0) == 0) {
15289 1 : i5 = i5 + 1 | 0;
15290 1 : i5 = (HEAP32[i4 + (i5 << 2) >> 2] | 0) == 0 ? 0 : i5;
15291 1 : i10 = 18;
15292 1 : } else {
15293 1 : i5 = -1;
15294 1 : }
15295 1 : } else if ((i10 | 0) == 15) {
15296 1 : i5 = 0 - i5 | 0;
15297 1 : i10 = 18;
15298 1 : } else if ((i10 | 0) == 16) {
15299 1 : i5 = 0 - i5 | 0;
15300 1 : i10 = 18;
15301 1 : }
15302 1 : if ((i10 | 0) == 18) {
15303 1 : if ((i5 | 0) >= 0) {
15304 1 : i12 = i9;
15305 1 : i10 = 23;
15306 1 : }
15307 1 : }
15308 1 : if ((i10 | 0) == 23) {
15309 1 : if ((i11 | 0) == 0) {
15310 1 : i9 = 1;
15311 1 : } else {
15312 1 : i9 = HEAP32[_stdout >> 2] | 0;
15313 1 : _fwrite(440, 1, 51, i9 | 0) | 0;
15314 1 : _fputc(10, i9 | 0) | 0;
15315 1 : _fflush(i9 | 0) | 0;
15316 1 : i9 = 0;
15317 1 : }
15318 1 : if ((i12 | 0) == 0) {
15319 1 : i10 = 1;
15320 1 : break;
15321 1 : }
15322 1 : _lua_pushboolean(i3, 1);
15323 1 : _lua_setfield(i3, -1001e3, 96);
15324 1 : i10 = 0;
15325 1 : break;
15326 1 : }
15327 1 : i3 = HEAP32[i4 + (0 - i5 << 2) >> 2] | 0;
15328 1 : i4 = HEAP32[_stderr >> 2] | 0;
15329 1 : HEAP32[i2 >> 2] = HEAP32[20];
15330 1 : _fprintf(i4 | 0, 496, i2 | 0) | 0;
15331 1 : _fflush(i4 | 0) | 0;
15332 1 : i13 = HEAP8[i3 + 1 | 0] | 0;
15333 1 : if (i13 << 24 >> 24 == 108 | i13 << 24 >> 24 == 101) {
15334 1 : HEAP32[i2 >> 2] = i3;
15335 1 : _fprintf(i4 | 0, 504, i2 | 0) | 0;
15336 1 : _fflush(i4 | 0) | 0;
15337 1 : } else {
15338 1 : HEAP32[i2 >> 2] = i3;
15339 1 : _fprintf(i4 | 0, 528, i2 | 0) | 0;
15340 1 : _fflush(i4 | 0) | 0;
15341 1 : }
15342 1 : HEAP32[i2 >> 2] = HEAP32[20];
15343 1 : _fprintf(i4 | 0, 560, i2 | 0) | 0;
15344 1 : _fflush(i4 | 0) | 0;
15345 1 : i13 = 0;
15346 1 : STACKTOP = i1;
15347 1 : return i13 | 0;
15348 1 : }
15349 1 : } while (0);
15350 1 : _luaL_checkversion_(i3, 502.0);
15351 1 : _lua_gc(i3, 0, 0) | 0;
15352 1 : _luaL_openlibs(i3);
15353 1 : _lua_gc(i3, 1, 0) | 0;
15354 1 : do {
15355 1 : if (i10) {
15356 1 : i10 = _getenv(409 | 0) | 0;
15357 1 : if ((i10 | 0) == 0) {
15358 1 : i10 = _getenv(425 | 0) | 0;
15359 1 : if ((i10 | 0) == 0) {
15360 1 : break;
15361 1 : } else {
15362 1 : i11 = 424;
15363 1 : }
15364 1 : } else {
15365 1 : i11 = 408;
15366 1 : }
15367 1 : if ((HEAP8[i10] | 0) == 64) {
15368 1 : i13 = _luaL_loadfilex(i3, i10 + 1 | 0, 0) | 0;
15369 1 : if ((i13 | 0) == 0) {
15370 1 : i12 = _lua_gettop(i3) | 0;
15371 1 : _lua_pushcclosure(i3, 142, 0);
15372 1 : _lua_insert(i3, i12);
15373 1 : HEAP32[48] = i3;
15374 1 : _signal(2, 1) | 0;
15375 1 : i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
15376 1 : _signal(2, 0) | 0;
15377 1 : _lua_remove(i3, i12);
15378 1 : if ((i13 | 0) == 0) {
15379 1 : break;
15380 1 : }
15381 1 : }
15382 1 : if ((_lua_type(i3, -1) | 0) == 0) {
15383 1 : i13 = 0;
15384 1 : STACKTOP = i1;
15385 1 : return i13 | 0;
15386 1 : }
15387 1 : i11 = _lua_tolstring(i3, -1, 0) | 0;
15388 1 : i12 = HEAP32[20] | 0;
15389 1 : i10 = HEAP32[_stderr >> 2] | 0;
15390 1 : if ((i12 | 0) != 0) {
15391 1 : HEAP32[i2 >> 2] = i12;
15392 1 : _fprintf(i10 | 0, 496, i2 | 0) | 0;
15393 1 : _fflush(i10 | 0) | 0;
15394 1 : }
15395 1 : HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
15396 1 : _fprintf(i10 | 0, 912, i2 | 0) | 0;
15397 1 : _fflush(i10 | 0) | 0;
15398 1 : _lua_settop(i3, -2);
15399 1 : _lua_gc(i3, 2, 0) | 0;
15400 1 : } else {
15401 1 : i13 = _luaL_loadbufferx(i3, i10, _strlen(i10 | 0) | 0, i11, 0) | 0;
15402 1 : if ((i13 | 0) == 0) {
15403 1 : i12 = _lua_gettop(i3) | 0;
15404 1 : _lua_pushcclosure(i3, 142, 0);
15405 1 : _lua_insert(i3, i12);
15406 1 : HEAP32[48] = i3;
15407 1 : _signal(2, 1) | 0;
15408 1 : i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
15409 1 : _signal(2, 0) | 0;
15410 1 : _lua_remove(i3, i12);
15411 1 : if ((i13 | 0) == 0) {
15412 1 : break;
15413 1 : }
15414 1 : }
15415 1 : if ((_lua_type(i3, -1) | 0) == 0) {
15416 1 : i13 = 0;
15417 1 : STACKTOP = i1;
15418 1 : return i13 | 0;
15419 1 : }
15420 1 : i11 = _lua_tolstring(i3, -1, 0) | 0;
15421 1 : i10 = HEAP32[20] | 0;
15422 1 : i12 = HEAP32[_stderr >> 2] | 0;
15423 1 : if ((i10 | 0) != 0) {
15424 1 : HEAP32[i2 >> 2] = i10;
15425 1 : _fprintf(i12 | 0, 496, i2 | 0) | 0;
15426 1 : _fflush(i12 | 0) | 0;
15427 1 : }
15428 1 : HEAP32[i2 >> 2] = (i11 | 0) == 0 ? 48 : i11;
15429 1 : _fprintf(i12 | 0, 912, i2 | 0) | 0;
15430 1 : _fflush(i12 | 0) | 0;
15431 1 : _lua_settop(i3, -2);
15432 1 : _lua_gc(i3, 2, 0) | 0;
15433 1 : }
15434 1 : if ((i13 | 0) != 0) {
15435 1 : i13 = 0;
15436 1 : STACKTOP = i1;
15437 1 : return i13 | 0;
15438 1 : }
15439 1 : }
15440 1 : } while (0);
15441 1 : i7 = (i5 | 0) > 0 ? i5 : i7;
15442 1 : L67 : do {
15443 1 : if ((i7 | 0) > 1) {
15444 1 : i10 = 1;
15445 1 : while (1) {
15446 1 : i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
15447 1 : i12 = HEAP8[i11 + 1 | 0] | 0;
15448 1 : if ((i12 | 0) == 108) {
15449 1 : i11 = i11 + 2 | 0;
15450 1 : if ((HEAP8[i11] | 0) == 0) {
15451 1 : i10 = i10 + 1 | 0;
15452 1 : i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
15453 1 : }
15454 1 : _lua_getglobal(i3, 400);
15455 1 : _lua_pushstring(i3, i11) | 0;
15456 1 : i12 = (_lua_gettop(i3) | 0) + -1 | 0;
15457 1 : _lua_pushcclosure(i3, 142, 0);
15458 1 : _lua_insert(i3, i12);
15459 1 : HEAP32[48] = i3;
15460 1 : _signal(2, 1) | 0;
15461 1 : i13 = _lua_pcallk(i3, 1, 1, i12, 0, 0) | 0;
15462 1 : _signal(2, 0) | 0;
15463 1 : _lua_remove(i3, i12);
15464 1 : if ((i13 | 0) != 0) {
15465 1 : i10 = 58;
15466 1 : break;
15467 1 : }
15468 1 : _lua_setglobal(i3, i11);
15469 1 : } else if ((i12 | 0) == 101) {
15470 1 : i11 = i11 + 2 | 0;
15471 1 : if ((HEAP8[i11] | 0) == 0) {
15472 1 : i10 = i10 + 1 | 0;
15473 1 : i11 = HEAP32[i4 + (i10 << 2) >> 2] | 0;
15474 1 : }
15475 1 : if ((_luaL_loadbufferx(i3, i11, _strlen(i11 | 0) | 0, 384, 0) | 0) != 0) {
15476 1 : i10 = 50;
15477 1 : break;
15478 1 : }
15479 1 : i12 = _lua_gettop(i3) | 0;
15480 1 : _lua_pushcclosure(i3, 142, 0);
15481 1 : _lua_insert(i3, i12);
15482 1 : HEAP32[48] = i3;
15483 1 : _signal(2, 1) | 0;
15484 1 : i13 = _lua_pcallk(i3, 0, 0, i12, 0, 0) | 0;
15485 1 : _signal(2, 0) | 0;
15486 1 : _lua_remove(i3, i12);
15487 1 : if ((i13 | 0) != 0) {
15488 1 : i10 = 50;
15489 1 : break;
15490 1 : }
15491 1 : }
15492 1 : i10 = i10 + 1 | 0;
15493 1 : if ((i10 | 0) >= (i7 | 0)) {
15494 1 : break L67;
15495 1 : }
15496 1 : }
15497 1 : if ((i10 | 0) == 50) {
15498 1 : if ((_lua_type(i3, -1) | 0) == 0) {
15499 1 : i13 = 0;
15500 1 : STACKTOP = i1;
15501 1 : return i13 | 0;
15502 1 : }
15503 1 : i5 = _lua_tolstring(i3, -1, 0) | 0;
15504 1 : i6 = HEAP32[20] | 0;
15505 1 : i4 = HEAP32[_stderr >> 2] | 0;
15506 1 : if ((i6 | 0) != 0) {
15507 1 : HEAP32[i2 >> 2] = i6;
15508 1 : _fprintf(i4 | 0, 496, i2 | 0) | 0;
15509 1 : _fflush(i4 | 0) | 0;
15510 1 : }
15511 1 : HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
15512 1 : _fprintf(i4 | 0, 912, i2 | 0) | 0;
15513 1 : _fflush(i4 | 0) | 0;
15514 1 : _lua_settop(i3, -2);
15515 1 : _lua_gc(i3, 2, 0) | 0;
15516 1 : i13 = 0;
15517 1 : STACKTOP = i1;
15518 1 : return i13 | 0;
15519 1 : } else if ((i10 | 0) == 58) {
15520 1 : if ((_lua_type(i3, -1) | 0) == 0) {
15521 1 : i13 = 0;
15522 1 : STACKTOP = i1;
15523 1 : return i13 | 0;
15524 1 : }
15525 1 : i5 = _lua_tolstring(i3, -1, 0) | 0;
15526 1 : i6 = HEAP32[20] | 0;
15527 1 : i4 = HEAP32[_stderr >> 2] | 0;
15528 1 : if ((i6 | 0) != 0) {
15529 1 : HEAP32[i2 >> 2] = i6;
15530 1 : _fprintf(i4 | 0, 496, i2 | 0) | 0;
15531 1 : _fflush(i4 | 0) | 0;
15532 1 : }
15533 1 : HEAP32[i2 >> 2] = (i5 | 0) == 0 ? 48 : i5;
15534 1 : _fprintf(i4 | 0, 912, i2 | 0) | 0;
15535 1 : _fflush(i4 | 0) | 0;
15536 1 : _lua_settop(i3, -2);
15537 1 : _lua_gc(i3, 2, 0) | 0;
15538 1 : i13 = 0;
15539 1 : STACKTOP = i1;
15540 1 : return i13 | 0;
15541 1 : }
15542 1 : }
15543 1 : } while (0);
15544 1 : do {
15545 1 : if ((i5 | 0) != 0) {
15546 1 : i10 = 0;
15547 1 : while (1) {
15548 1 : if ((HEAP32[i4 + (i10 << 2) >> 2] | 0) == 0) {
15549 1 : break;
15550 1 : } else {
15551 1 : i10 = i10 + 1 | 0;
15552 1 : }
15553 1 : }
15554 1 : i11 = i5 + 1 | 0;
15555 1 : i7 = i10 - i11 | 0;
15556 1 : _luaL_checkstack(i3, i7 + 3 | 0, 352);
15557 1 : if ((i11 | 0) < (i10 | 0)) {
15558 1 : i12 = i11;
15559 1 : do {
15560 1 : _lua_pushstring(i3, HEAP32[i4 + (i12 << 2) >> 2] | 0) | 0;
15561 1 : i12 = i12 + 1 | 0;
15562 1 : } while ((i12 | 0) != (i10 | 0));
15563 1 : }
15564 1 : _lua_createtable(i3, i7, i11);
15565 1 : if ((i10 | 0) > 0) {
15566 1 : i11 = 0;
15567 1 : do {
15568 1 : _lua_pushstring(i3, HEAP32[i4 + (i11 << 2) >> 2] | 0) | 0;
15569 1 : _lua_rawseti(i3, -2, i11 - i5 | 0);
15570 1 : i11 = i11 + 1 | 0;
15571 1 : } while ((i11 | 0) != (i10 | 0));
15572 1 : }
15573 1 : _lua_setglobal(i3, 328);
15574 1 : i10 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
15575 1 : if ((_strcmp(i10, 336) | 0) == 0) {
15576 1 : i13 = (_strcmp(HEAP32[i4 + (i5 + -1 << 2) >> 2] | 0, 344) | 0) == 0;
15577 1 : i10 = i13 ? i10 : 0;
15578 1 : }
15579 1 : i10 = _luaL_loadfilex(i3, i10, 0) | 0;
15580 1 : i4 = ~i7;
15581 1 : _lua_insert(i3, i4);
15582 1 : if ((i10 | 0) == 0) {
15583 1 : i13 = (_lua_gettop(i3) | 0) - i7 | 0;
15584 1 : _lua_pushcclosure(i3, 142, 0);
15585 1 : _lua_insert(i3, i13);
15586 1 : HEAP32[48] = i3;
15587 1 : _signal(2, 1) | 0;
15588 1 : i10 = _lua_pcallk(i3, i7, -1, i13, 0, 0) | 0;
15589 1 : _signal(2, 0) | 0;
15590 1 : _lua_remove(i3, i13);
15591 1 : if ((i10 | 0) == 0) {
15592 1 : break;
15593 1 : }
15594 1 : } else {
15595 1 : _lua_settop(i3, i4);
15596 1 : }
15597 1 : if ((_lua_type(i3, -1) | 0) != 0) {
15598 1 : i7 = _lua_tolstring(i3, -1, 0) | 0;
15599 1 : i11 = HEAP32[20] | 0;
15600 1 : i4 = HEAP32[_stderr >> 2] | 0;
15601 1 : if ((i11 | 0) != 0) {
15602 1 : HEAP32[i2 >> 2] = i11;
15603 1 : _fprintf(i4 | 0, 496, i2 | 0) | 0;
15604 1 : _fflush(i4 | 0) | 0;
15605 1 : }
15606 1 : HEAP32[i2 >> 2] = (i7 | 0) == 0 ? 48 : i7;
15607 1 : _fprintf(i4 | 0, 912, i2 | 0) | 0;
15608 1 : _fflush(i4 | 0) | 0;
15609 1 : _lua_settop(i3, -2);
15610 1 : _lua_gc(i3, 2, 0) | 0;
15611 1 : }
15612 1 : if ((i10 | 0) != 0) {
15613 1 : i13 = 0;
15614 1 : STACKTOP = i1;
15615 1 : return i13 | 0;
15616 1 : }
15617 1 : }
15618 1 : } while (0);
15619 1 : if ((i6 | 0) == 0) {
15620 1 : if (!((i8 | i5 | 0) != 0 | i9 ^ 1)) {
15621 1 : i13 = HEAP32[_stdout >> 2] | 0;
15622 1 : _fwrite(440, 1, 51, i13 | 0) | 0;
15623 1 : _fputc(10, i13 | 0) | 0;
15624 1 : _fflush(i13 | 0) | 0;
15625 1 : _dotty(i3);
15626 1 : }
15627 1 : } else {
15628 1 : _dotty(i3);
15629 1 : }
15630 1 : _lua_pushboolean(i3, 1);
15631 1 : i13 = 1;
15632 1 : STACKTOP = i1;
15633 1 : return i13 | 0;
15634 1 : }
15635 1 : function _DumpFunction(i6, i2) {
15636 0 : i6 = i6 | 0;
15637 0 : i2 = i2 | 0;
15638 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i29 = 0, i30 = 0;
15639 0 : i5 = STACKTOP;
15640 0 : STACKTOP = STACKTOP + 64 | 0;
15641 0 : i17 = i5 + 56 | 0;
15642 0 : i19 = i5 + 52 | 0;
15643 0 : i20 = i5 + 48 | 0;
15644 0 : i18 = i5;
15645 0 : i21 = i5 + 60 | 0;
15646 0 : i22 = i5 + 44 | 0;
15647 0 : i1 = i5 + 40 | 0;
15648 0 : i16 = i5 + 36 | 0;
15649 0 : i23 = i5 + 32 | 0;
15650 0 : i3 = i5 + 28 | 0;
15651 0 : i7 = i5 + 24 | 0;
15652 0 : i8 = i5 + 20 | 0;
15653 0 : i9 = i5 + 16 | 0;
15654 0 : i10 = i5 + 12 | 0;
15655 0 : i12 = i5 + 8 | 0;
15656 0 : HEAP32[i17 >> 2] = HEAP32[i6 + 64 >> 2];
15657 0 : i4 = i2 + 16 | 0;
15658 0 : i28 = HEAP32[i4 >> 2] | 0;
15659 0 : if ((i28 | 0) == 0) {
15660 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15661 0 : HEAP32[i4 >> 2] = i28;
15662 0 : }
15663 0 : HEAP32[i17 >> 2] = HEAP32[i6 + 68 >> 2];
15664 0 : if ((i28 | 0) == 0) {
15665 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15666 0 : HEAP32[i4 >> 2] = i28;
15667 0 : }
15668 0 : HEAP8[i17] = HEAP8[i6 + 76 | 0] | 0;
15669 0 : if ((i28 | 0) == 0) {
15670 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
15671 0 : HEAP32[i4 >> 2] = i28;
15672 0 : }
15673 0 : HEAP8[i17] = HEAP8[i6 + 77 | 0] | 0;
15674 0 : if ((i28 | 0) == 0) {
15675 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
15676 0 : HEAP32[i4 >> 2] = i28;
15677 0 : }
15678 0 : HEAP8[i17] = HEAP8[i6 + 78 | 0] | 0;
15679 0 : if ((i28 | 0) == 0) {
15680 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i2 + 8 >> 2] | 0) | 0;
15681 0 : HEAP32[i4 >> 2] = i28;
15682 0 : }
15683 0 : i25 = HEAP32[i6 + 12 >> 2] | 0;
15684 0 : i24 = HEAP32[i6 + 48 >> 2] | 0;
15685 0 : HEAP32[i23 >> 2] = i24;
15686 0 : if ((i28 | 0) == 0) {
15687 0 : i26 = i2 + 4 | 0;
15688 0 : i27 = i2 + 8 | 0;
15689 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i23, 4, HEAP32[i27 >> 2] | 0) | 0;
15690 0 : HEAP32[i4 >> 2] = i28;
15691 0 : if ((i28 | 0) == 0) {
15692 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i26 >> 2] & 3](HEAP32[i2 >> 2] | 0, i25, i24 << 2, HEAP32[i27 >> 2] | 0) | 0;
15693 0 : HEAP32[i4 >> 2] = i28;
15694 0 : i25 = HEAP32[i6 + 44 >> 2] | 0;
15695 0 : HEAP32[i22 >> 2] = i25;
15696 0 : if ((i28 | 0) == 0) {
15697 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i22, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15698 0 : HEAP32[i4 >> 2] = i28;
15699 0 : }
15700 0 : } else {
15701 0 : i11 = 13;
15702 0 : }
15703 0 : } else {
15704 0 : i11 = 13;
15705 0 : }
15706 0 : if ((i11 | 0) == 13) {
15707 0 : i25 = HEAP32[i6 + 44 >> 2] | 0;
15708 0 : HEAP32[i22 >> 2] = i25;
15709 0 : }
15710 0 : if ((i25 | 0) > 0) {
15711 0 : i24 = i6 + 8 | 0;
15712 0 : i23 = i2 + 4 | 0;
15713 0 : i22 = i2 + 8 | 0;
15714 0 : i26 = 0;
15715 0 : do {
15716 0 : i30 = HEAP32[i24 >> 2] | 0;
15717 0 : i27 = i30 + (i26 << 4) | 0;
15718 0 : i30 = i30 + (i26 << 4) + 8 | 0;
15719 0 : i29 = HEAP32[i30 >> 2] | 0;
15720 0 : HEAP8[i17] = i29 & 15;
15721 0 : if ((i28 | 0) == 0) {
15722 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 1, HEAP32[i22 >> 2] | 0) | 0;
15723 0 : HEAP32[i4 >> 2] = i28;
15724 0 : i29 = HEAP32[i30 >> 2] | 0;
15725 0 : }
15726 0 : i29 = i29 & 15;
15727 0 : do {
15728 0 : if ((i29 | 0) == 3) {
15729 0 : HEAPF64[i18 >> 3] = +HEAPF64[i27 >> 3];
15730 0 : if ((i28 | 0) == 0) {
15731 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i18, 8, HEAP32[i22 >> 2] | 0) | 0;
15732 0 : HEAP32[i4 >> 2] = i28;
15733 0 : }
15734 0 : } else if ((i29 | 0) == 1) {
15735 0 : HEAP8[i21] = HEAP32[i27 >> 2];
15736 0 : if ((i28 | 0) == 0) {
15737 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i21, 1, HEAP32[i22 >> 2] | 0) | 0;
15738 0 : HEAP32[i4 >> 2] = i28;
15739 0 : }
15740 0 : } else if ((i29 | 0) == 4) {
15741 0 : i27 = HEAP32[i27 >> 2] | 0;
15742 0 : if ((i27 | 0) == 0) {
15743 0 : HEAP32[i19 >> 2] = 0;
15744 0 : if ((i28 | 0) != 0) {
15745 0 : break;
15746 0 : }
15747 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i19, 4, HEAP32[i22 >> 2] | 0) | 0;
15748 0 : HEAP32[i4 >> 2] = i28;
15749 0 : break;
15750 0 : }
15751 0 : HEAP32[i20 >> 2] = (HEAP32[i27 + 12 >> 2] | 0) + 1;
15752 0 : if ((i28 | 0) == 0) {
15753 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i20, 4, HEAP32[i22 >> 2] | 0) | 0;
15754 0 : HEAP32[i4 >> 2] = i28;
15755 0 : if ((i28 | 0) == 0) {
15756 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i23 >> 2] & 3](HEAP32[i2 >> 2] | 0, i27 + 16 | 0, HEAP32[i20 >> 2] | 0, HEAP32[i22 >> 2] | 0) | 0;
15757 0 : HEAP32[i4 >> 2] = i28;
15758 0 : }
15759 0 : }
15760 0 : }
15761 0 : } while (0);
15762 0 : i26 = i26 + 1 | 0;
15763 0 : } while ((i26 | 0) != (i25 | 0));
15764 0 : }
15765 0 : i18 = HEAP32[i6 + 56 >> 2] | 0;
15766 0 : HEAP32[i17 >> 2] = i18;
15767 0 : if ((i28 | 0) == 0) {
15768 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i17, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15769 0 : HEAP32[i4 >> 2] = i28;
15770 0 : }
15771 0 : if ((i18 | 0) > 0) {
15772 0 : i17 = i6 + 16 | 0;
15773 0 : i19 = 0;
15774 0 : do {
15775 0 : _DumpFunction(HEAP32[(HEAP32[i17 >> 2] | 0) + (i19 << 2) >> 2] | 0, i2);
15776 0 : i19 = i19 + 1 | 0;
15777 0 : } while ((i19 | 0) != (i18 | 0));
15778 0 : i28 = HEAP32[i4 >> 2] | 0;
15779 0 : }
15780 0 : i17 = i6 + 40 | 0;
15781 0 : i18 = HEAP32[i17 >> 2] | 0;
15782 0 : HEAP32[i16 >> 2] = i18;
15783 0 : if ((i28 | 0) == 0) {
15784 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i16, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15785 0 : HEAP32[i4 >> 2] = i28;
15786 0 : }
15787 0 : if ((i18 | 0) > 0) {
15788 0 : i19 = i6 + 28 | 0;
15789 0 : i16 = i2 + 4 | 0;
15790 0 : i20 = i2 + 8 | 0;
15791 0 : i21 = 0;
15792 0 : do {
15793 0 : i22 = HEAP32[i19 >> 2] | 0;
15794 0 : HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 4 | 0] | 0;
15795 0 : if ((i28 | 0) == 0) {
15796 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
15797 0 : HEAP32[i4 >> 2] = i28;
15798 0 : i22 = HEAP32[i19 >> 2] | 0;
15799 0 : }
15800 0 : HEAP8[i1] = HEAP8[i22 + (i21 << 3) + 5 | 0] | 0;
15801 0 : if ((i28 | 0) == 0) {
15802 0 : i28 = FUNCTION_TABLE_iiiii[HEAP32[i16 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 1, HEAP32[i20 >> 2] | 0) | 0;
15803 0 : HEAP32[i4 >> 2] = i28;
15804 0 : }
15805 0 : i21 = i21 + 1 | 0;
15806 0 : } while ((i21 | 0) != (i18 | 0));
15807 0 : }
15808 0 : i16 = i2 + 12 | 0;
15809 0 : if ((HEAP32[i16 >> 2] | 0) == 0 ? (i13 = HEAP32[i6 + 36 >> 2] | 0, (i13 | 0) != 0) : 0) {
15810 0 : HEAP32[i12 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
15811 0 : if ((i28 | 0) == 0 ? (i14 = i2 + 4 | 0, i15 = i2 + 8 | 0, i30 = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i15 >> 2] | 0) | 0, HEAP32[i4 >> 2] = i30, (i30 | 0) == 0) : 0) {
15812 0 : HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i14 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i12 >> 2] | 0, HEAP32[i15 >> 2] | 0) | 0;
15813 0 : }
15814 0 : } else {
15815 0 : i12 = i10;
15816 0 : i11 = 50;
15817 0 : }
15818 0 : if ((i11 | 0) == 50) {
15819 0 : HEAP32[i10 >> 2] = 0;
15820 0 : if ((i28 | 0) == 0) {
15821 0 : HEAP32[i4 >> 2] = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i12, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15822 0 : }
15823 0 : }
15824 0 : if ((HEAP32[i16 >> 2] | 0) == 0) {
15825 0 : i11 = HEAP32[i6 + 52 >> 2] | 0;
15826 0 : } else {
15827 0 : i11 = 0;
15828 0 : }
15829 0 : i10 = HEAP32[i6 + 20 >> 2] | 0;
15830 0 : HEAP32[i9 >> 2] = i11;
15831 0 : i14 = HEAP32[i4 >> 2] | 0;
15832 0 : if ((i14 | 0) == 0) {
15833 0 : i12 = i2 + 4 | 0;
15834 0 : i13 = i2 + 8 | 0;
15835 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i9, 4, HEAP32[i13 >> 2] | 0) | 0;
15836 0 : HEAP32[i4 >> 2] = i14;
15837 0 : if ((i14 | 0) == 0) {
15838 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i12 >> 2] & 3](HEAP32[i2 >> 2] | 0, i10, i11 << 2, HEAP32[i13 >> 2] | 0) | 0;
15839 0 : HEAP32[i4 >> 2] = i14;
15840 0 : }
15841 0 : }
15842 0 : if ((HEAP32[i16 >> 2] | 0) == 0) {
15843 0 : i9 = HEAP32[i6 + 60 >> 2] | 0;
15844 0 : } else {
15845 0 : i9 = 0;
15846 0 : }
15847 0 : HEAP32[i8 >> 2] = i9;
15848 0 : if ((i14 | 0) == 0) {
15849 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i8, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15850 0 : HEAP32[i4 >> 2] = i14;
15851 0 : }
15852 0 : if ((i9 | 0) > 0) {
15853 0 : i10 = i6 + 24 | 0;
15854 0 : i11 = i2 + 4 | 0;
15855 0 : i8 = i2 + 8 | 0;
15856 0 : i12 = 0;
15857 0 : do {
15858 0 : i13 = HEAP32[(HEAP32[i10 >> 2] | 0) + (i12 * 12 | 0) >> 2] | 0;
15859 0 : if ((i13 | 0) == 0) {
15860 0 : HEAP32[i1 >> 2] = 0;
15861 0 : if ((i14 | 0) == 0) {
15862 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
15863 0 : HEAP32[i4 >> 2] = i14;
15864 0 : }
15865 0 : } else {
15866 0 : HEAP32[i3 >> 2] = (HEAP32[i13 + 12 >> 2] | 0) + 1;
15867 0 : if ((i14 | 0) == 0) {
15868 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i8 >> 2] | 0) | 0;
15869 0 : HEAP32[i4 >> 2] = i14;
15870 0 : if ((i14 | 0) == 0) {
15871 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i13 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i8 >> 2] | 0) | 0;
15872 0 : HEAP32[i4 >> 2] = i14;
15873 0 : }
15874 0 : }
15875 0 : }
15876 0 : i13 = HEAP32[i10 >> 2] | 0;
15877 0 : HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 4 >> 2];
15878 0 : if ((i14 | 0) == 0) {
15879 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
15880 0 : HEAP32[i4 >> 2] = i14;
15881 0 : i13 = HEAP32[i10 >> 2] | 0;
15882 0 : }
15883 0 : HEAP32[i1 >> 2] = HEAP32[i13 + (i12 * 12 | 0) + 8 >> 2];
15884 0 : if ((i14 | 0) == 0) {
15885 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i11 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i8 >> 2] | 0) | 0;
15886 0 : HEAP32[i4 >> 2] = i14;
15887 0 : }
15888 0 : i12 = i12 + 1 | 0;
15889 0 : } while ((i12 | 0) != (i9 | 0));
15890 0 : }
15891 0 : if ((HEAP32[i16 >> 2] | 0) == 0) {
15892 0 : i8 = HEAP32[i17 >> 2] | 0;
15893 0 : } else {
15894 0 : i8 = 0;
15895 0 : }
15896 0 : HEAP32[i7 >> 2] = i8;
15897 0 : if ((i14 | 0) == 0) {
15898 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i2 + 4 >> 2] & 3](HEAP32[i2 >> 2] | 0, i7, 4, HEAP32[i2 + 8 >> 2] | 0) | 0;
15899 0 : HEAP32[i4 >> 2] = i14;
15900 0 : }
15901 0 : if ((i8 | 0) <= 0) {
15902 0 : STACKTOP = i5;
15903 0 : return;
15904 0 : }
15905 0 : i7 = i6 + 28 | 0;
15906 0 : i6 = i2 + 4 | 0;
15907 0 : i9 = i2 + 8 | 0;
15908 0 : i10 = 0;
15909 0 : do {
15910 0 : i11 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i10 << 3) >> 2] | 0;
15911 0 : if ((i11 | 0) == 0) {
15912 0 : HEAP32[i1 >> 2] = 0;
15913 0 : if ((i14 | 0) == 0) {
15914 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i1, 4, HEAP32[i9 >> 2] | 0) | 0;
15915 0 : HEAP32[i4 >> 2] = i14;
15916 0 : }
15917 0 : } else {
15918 0 : HEAP32[i3 >> 2] = (HEAP32[i11 + 12 >> 2] | 0) + 1;
15919 0 : if ((i14 | 0) == 0) {
15920 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i3, 4, HEAP32[i9 >> 2] | 0) | 0;
15921 0 : HEAP32[i4 >> 2] = i14;
15922 0 : if ((i14 | 0) == 0) {
15923 0 : i14 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i2 >> 2] | 0, i11 + 16 | 0, HEAP32[i3 >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0;
15924 0 : HEAP32[i4 >> 2] = i14;
15925 0 : }
15926 0 : }
15927 0 : }
15928 0 : i10 = i10 + 1 | 0;
15929 0 : } while ((i10 | 0) != (i8 | 0));
15930 0 : STACKTOP = i5;
15931 0 : return;
15932 1 : }
15933 1 : function _LoadFunction(i2, i6) {
15934 0 : i2 = i2 | 0;
15935 0 : i6 = i6 | 0;
15936 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
15937 0 : i1 = STACKTOP;
15938 0 : STACKTOP = STACKTOP + 16 | 0;
15939 0 : i3 = i1;
15940 0 : i5 = i1 + 8 | 0;
15941 0 : i4 = i2 + 4 | 0;
15942 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
15943 0 : _error(i2, 8824);
15944 0 : }
15945 0 : i8 = HEAP32[i3 >> 2] | 0;
15946 0 : if ((i8 | 0) < 0) {
15947 0 : _error(i2, 8872);
15948 0 : }
15949 0 : HEAP32[i6 + 64 >> 2] = i8;
15950 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
15951 0 : _error(i2, 8824);
15952 0 : }
15953 0 : i8 = HEAP32[i3 >> 2] | 0;
15954 0 : if ((i8 | 0) < 0) {
15955 0 : _error(i2, 8872);
15956 0 : }
15957 0 : HEAP32[i6 + 68 >> 2] = i8;
15958 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
15959 0 : _error(i2, 8824);
15960 0 : }
15961 0 : HEAP8[i6 + 76 | 0] = HEAP8[i3] | 0;
15962 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
15963 0 : _error(i2, 8824);
15964 0 : }
15965 0 : HEAP8[i6 + 77 | 0] = HEAP8[i3] | 0;
15966 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
15967 0 : _error(i2, 8824);
15968 0 : }
15969 0 : HEAP8[i6 + 78 | 0] = HEAP8[i3] | 0;
15970 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
15971 0 : _error(i2, 8824);
15972 0 : }
15973 0 : i9 = HEAP32[i3 >> 2] | 0;
15974 0 : if ((i9 | 0) < 0) {
15975 0 : _error(i2, 8872);
15976 0 : }
15977 0 : i8 = HEAP32[i2 >> 2] | 0;
15978 0 : if ((i9 + 1 | 0) >>> 0 > 1073741823) {
15979 0 : _luaM_toobig(i8);
15980 0 : }
15981 0 : i14 = i9 << 2;
15982 0 : i13 = _luaM_realloc_(i8, 0, 0, i14) | 0;
15983 0 : HEAP32[i6 + 12 >> 2] = i13;
15984 0 : HEAP32[i6 + 48 >> 2] = i9;
15985 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
15986 0 : _error(i2, 8824);
15987 0 : }
15988 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
15989 0 : _error(i2, 8824);
15990 0 : }
15991 0 : i8 = HEAP32[i3 >> 2] | 0;
15992 0 : if ((i8 | 0) < 0) {
15993 0 : _error(i2, 8872);
15994 0 : }
15995 0 : i9 = HEAP32[i2 >> 2] | 0;
15996 0 : if ((i8 + 1 | 0) >>> 0 > 268435455) {
15997 0 : _luaM_toobig(i9);
15998 0 : }
15999 0 : i11 = _luaM_realloc_(i9, 0, 0, i8 << 4) | 0;
16000 0 : i9 = i6 + 8 | 0;
16001 0 : HEAP32[i9 >> 2] = i11;
16002 0 : HEAP32[i6 + 44 >> 2] = i8;
16003 0 : i12 = (i8 | 0) > 0;
16004 0 : L43 : do {
16005 0 : if (i12) {
16006 0 : i10 = 0;
16007 0 : do {
16008 0 : HEAP32[i11 + (i10 << 4) + 8 >> 2] = 0;
16009 0 : i10 = i10 + 1 | 0;
16010 0 : } while ((i10 | 0) != (i8 | 0));
16011 0 : if (i12) {
16012 0 : i10 = i2 + 8 | 0;
16013 0 : i13 = 0;
16014 0 : while (1) {
16015 0 : i12 = i11 + (i13 << 4) | 0;
16016 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
16017 0 : i9 = 34;
16018 0 : break;
16019 0 : }
16020 0 : i14 = HEAP8[i3] | 0;
16021 0 : if ((i14 | 0) == 4) {
16022 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16023 0 : i9 = 44;
16024 0 : break;
16025 0 : }
16026 0 : i14 = HEAP32[i3 >> 2] | 0;
16027 0 : if ((i14 | 0) == 0) {
16028 0 : i14 = 0;
16029 0 : } else {
16030 0 : i14 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i10 >> 2] | 0, i14) | 0;
16031 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i14, HEAP32[i3 >> 2] | 0) | 0) != 0) {
16032 0 : i9 = 47;
16033 0 : break;
16034 0 : }
16035 0 : i14 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i14, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
16036 0 : }
16037 0 : HEAP32[i12 >> 2] = i14;
16038 0 : HEAP32[i11 + (i13 << 4) + 8 >> 2] = HEAPU8[i14 + 4 | 0] | 64;
16039 0 : } else if ((i14 | 0) == 1) {
16040 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
16041 0 : i9 = 38;
16042 0 : break;
16043 0 : }
16044 0 : HEAP32[i12 >> 2] = HEAP8[i3] | 0;
16045 0 : HEAP32[i11 + (i13 << 4) + 8 >> 2] = 1;
16046 0 : } else if ((i14 | 0) == 3) {
16047 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 8) | 0) != 0) {
16048 0 : i9 = 41;
16049 0 : break;
16050 0 : }
16051 0 : HEAPF64[i12 >> 3] = +HEAPF64[i3 >> 3];
16052 0 : HEAP32[i11 + (i13 << 4) + 8 >> 2] = 3;
16053 0 : } else if ((i14 | 0) == 0) {
16054 0 : HEAP32[i11 + (i13 << 4) + 8 >> 2] = 0;
16055 0 : }
16056 0 : i13 = i13 + 1 | 0;
16057 0 : if ((i13 | 0) >= (i8 | 0)) {
16058 0 : break L43;
16059 0 : }
16060 0 : i11 = HEAP32[i9 >> 2] | 0;
16061 0 : }
16062 0 : if ((i9 | 0) == 34) {
16063 0 : _error(i2, 8824);
16064 0 : } else if ((i9 | 0) == 38) {
16065 0 : _error(i2, 8824);
16066 0 : } else if ((i9 | 0) == 41) {
16067 0 : _error(i2, 8824);
16068 0 : } else if ((i9 | 0) == 44) {
16069 0 : _error(i2, 8824);
16070 0 : } else if ((i9 | 0) == 47) {
16071 0 : _error(i2, 8824);
16072 0 : }
16073 0 : }
16074 0 : }
16075 0 : } while (0);
16076 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16077 0 : _error(i2, 8824);
16078 0 : }
16079 0 : i8 = HEAP32[i3 >> 2] | 0;
16080 0 : if ((i8 | 0) < 0) {
16081 0 : _error(i2, 8872);
16082 0 : }
16083 0 : i9 = HEAP32[i2 >> 2] | 0;
16084 0 : if ((i8 + 1 | 0) >>> 0 > 1073741823) {
16085 0 : _luaM_toobig(i9);
16086 0 : }
16087 0 : i11 = _luaM_realloc_(i9, 0, 0, i8 << 2) | 0;
16088 0 : i9 = i6 + 16 | 0;
16089 0 : HEAP32[i9 >> 2] = i11;
16090 0 : HEAP32[i6 + 56 >> 2] = i8;
16091 0 : i10 = (i8 | 0) > 0;
16092 0 : if (i10) {
16093 0 : i12 = 0;
16094 0 : while (1) {
16095 0 : HEAP32[i11 + (i12 << 2) >> 2] = 0;
16096 0 : i12 = i12 + 1 | 0;
16097 0 : if ((i12 | 0) == (i8 | 0)) {
16098 0 : break;
16099 0 : }
16100 0 : i11 = HEAP32[i9 >> 2] | 0;
16101 0 : }
16102 0 : if (i10) {
16103 0 : i10 = 0;
16104 0 : do {
16105 0 : i14 = _luaF_newproto(HEAP32[i2 >> 2] | 0) | 0;
16106 0 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] = i14;
16107 0 : _LoadFunction(i2, HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 << 2) >> 2] | 0);
16108 0 : i10 = i10 + 1 | 0;
16109 0 : } while ((i10 | 0) != (i8 | 0));
16110 0 : }
16111 0 : }
16112 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16113 0 : _error(i2, 8824);
16114 0 : }
16115 0 : i9 = HEAP32[i3 >> 2] | 0;
16116 0 : if ((i9 | 0) < 0) {
16117 0 : _error(i2, 8872);
16118 0 : }
16119 0 : i8 = HEAP32[i2 >> 2] | 0;
16120 0 : if ((i9 + 1 | 0) >>> 0 > 536870911) {
16121 0 : _luaM_toobig(i8);
16122 0 : }
16123 0 : i10 = _luaM_realloc_(i8, 0, 0, i9 << 3) | 0;
16124 0 : i8 = i6 + 28 | 0;
16125 0 : HEAP32[i8 >> 2] = i10;
16126 0 : HEAP32[i6 + 40 >> 2] = i9;
16127 0 : L98 : do {
16128 0 : if ((i9 | 0) > 0) {
16129 0 : HEAP32[i10 >> 2] = 0;
16130 0 : if ((i9 | 0) == 1) {
16131 0 : i10 = 0;
16132 0 : } else {
16133 0 : i10 = 1;
16134 0 : while (1) {
16135 0 : HEAP32[(HEAP32[i8 >> 2] | 0) + (i10 << 3) >> 2] = 0;
16136 0 : i10 = i10 + 1 | 0;
16137 0 : if ((i10 | 0) == (i9 | 0)) {
16138 0 : i10 = 0;
16139 0 : break;
16140 0 : }
16141 0 : }
16142 0 : }
16143 0 : while (1) {
16144 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
16145 0 : i9 = 73;
16146 0 : break;
16147 0 : }
16148 0 : HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 4 | 0] = HEAP8[i3] | 0;
16149 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 1) | 0) != 0) {
16150 0 : i9 = 75;
16151 0 : break;
16152 0 : }
16153 0 : HEAP8[(HEAP32[i8 >> 2] | 0) + (i10 << 3) + 5 | 0] = HEAP8[i3] | 0;
16154 0 : i10 = i10 + 1 | 0;
16155 0 : if ((i10 | 0) >= (i9 | 0)) {
16156 0 : break L98;
16157 0 : }
16158 0 : }
16159 0 : if ((i9 | 0) == 73) {
16160 0 : _error(i2, 8824);
16161 0 : } else if ((i9 | 0) == 75) {
16162 0 : _error(i2, 8824);
16163 0 : }
16164 0 : }
16165 0 : } while (0);
16166 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16167 0 : _error(i2, 8824);
16168 0 : }
16169 0 : i9 = HEAP32[i3 >> 2] | 0;
16170 0 : do {
16171 0 : if ((i9 | 0) != 0) {
16172 0 : i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i2 + 8 >> 2] | 0, i9) | 0;
16173 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) == 0) {
16174 0 : i7 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
16175 0 : break;
16176 0 : } else {
16177 0 : _error(i2, 8824);
16178 0 : }
16179 0 : } else {
16180 0 : i7 = 0;
16181 0 : }
16182 0 : } while (0);
16183 0 : HEAP32[i6 + 36 >> 2] = i7;
16184 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16185 0 : _error(i2, 8824);
16186 0 : }
16187 0 : i7 = HEAP32[i3 >> 2] | 0;
16188 0 : if ((i7 | 0) < 0) {
16189 0 : _error(i2, 8872);
16190 0 : }
16191 0 : i9 = HEAP32[i2 >> 2] | 0;
16192 0 : if ((i7 + 1 | 0) >>> 0 > 1073741823) {
16193 0 : _luaM_toobig(i9);
16194 0 : }
16195 0 : i14 = i7 << 2;
16196 0 : i13 = _luaM_realloc_(i9, 0, 0, i14) | 0;
16197 0 : HEAP32[i6 + 20 >> 2] = i13;
16198 0 : HEAP32[i6 + 52 >> 2] = i7;
16199 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i13, i14) | 0) != 0) {
16200 0 : _error(i2, 8824);
16201 0 : }
16202 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16203 0 : _error(i2, 8824);
16204 0 : }
16205 0 : i7 = HEAP32[i3 >> 2] | 0;
16206 0 : if ((i7 | 0) < 0) {
16207 0 : _error(i2, 8872);
16208 0 : }
16209 0 : i9 = HEAP32[i2 >> 2] | 0;
16210 0 : if ((i7 + 1 | 0) >>> 0 > 357913941) {
16211 0 : _luaM_toobig(i9);
16212 0 : }
16213 0 : i10 = _luaM_realloc_(i9, 0, 0, i7 * 12 | 0) | 0;
16214 0 : i9 = i6 + 24 | 0;
16215 0 : HEAP32[i9 >> 2] = i10;
16216 0 : HEAP32[i6 + 60 >> 2] = i7;
16217 0 : L141 : do {
16218 0 : if ((i7 | 0) > 0) {
16219 0 : HEAP32[i10 >> 2] = 0;
16220 0 : if ((i7 | 0) != 1) {
16221 0 : i6 = 1;
16222 0 : do {
16223 0 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i6 * 12 | 0) >> 2] = 0;
16224 0 : i6 = i6 + 1 | 0;
16225 0 : } while ((i6 | 0) != (i7 | 0));
16226 0 : }
16227 0 : i6 = i2 + 8 | 0;
16228 0 : i10 = 0;
16229 0 : while (1) {
16230 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16231 0 : i9 = 102;
16232 0 : break;
16233 0 : }
16234 0 : i11 = HEAP32[i3 >> 2] | 0;
16235 0 : if ((i11 | 0) == 0) {
16236 0 : i11 = 0;
16237 0 : } else {
16238 0 : i11 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i6 >> 2] | 0, i11) | 0;
16239 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i11, HEAP32[i3 >> 2] | 0) | 0) != 0) {
16240 0 : i9 = 105;
16241 0 : break;
16242 0 : }
16243 0 : i11 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i11, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
16244 0 : }
16245 0 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) >> 2] = i11;
16246 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16247 0 : i9 = 108;
16248 0 : break;
16249 0 : }
16250 0 : i11 = HEAP32[i3 >> 2] | 0;
16251 0 : if ((i11 | 0) < 0) {
16252 0 : i9 = 110;
16253 0 : break;
16254 0 : }
16255 0 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 4 >> 2] = i11;
16256 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16257 0 : i9 = 112;
16258 0 : break;
16259 0 : }
16260 0 : i11 = HEAP32[i3 >> 2] | 0;
16261 0 : if ((i11 | 0) < 0) {
16262 0 : i9 = 114;
16263 0 : break;
16264 0 : }
16265 0 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i10 * 12 | 0) + 8 >> 2] = i11;
16266 0 : i10 = i10 + 1 | 0;
16267 0 : if ((i10 | 0) >= (i7 | 0)) {
16268 0 : break L141;
16269 0 : }
16270 0 : }
16271 0 : if ((i9 | 0) == 102) {
16272 0 : _error(i2, 8824);
16273 0 : } else if ((i9 | 0) == 105) {
16274 0 : _error(i2, 8824);
16275 0 : } else if ((i9 | 0) == 108) {
16276 0 : _error(i2, 8824);
16277 0 : } else if ((i9 | 0) == 110) {
16278 0 : _error(i2, 8872);
16279 0 : } else if ((i9 | 0) == 112) {
16280 0 : _error(i2, 8824);
16281 0 : } else if ((i9 | 0) == 114) {
16282 0 : _error(i2, 8872);
16283 0 : }
16284 0 : }
16285 0 : } while (0);
16286 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i5, 4) | 0) != 0) {
16287 0 : _error(i2, 8824);
16288 0 : }
16289 0 : i6 = HEAP32[i5 >> 2] | 0;
16290 0 : if ((i6 | 0) < 0) {
16291 0 : _error(i2, 8872);
16292 0 : }
16293 0 : if ((i6 | 0) <= 0) {
16294 0 : STACKTOP = i1;
16295 0 : return;
16296 0 : }
16297 0 : i5 = i2 + 8 | 0;
16298 0 : i7 = 0;
16299 0 : while (1) {
16300 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i3, 4) | 0) != 0) {
16301 0 : i9 = 123;
16302 0 : break;
16303 0 : }
16304 0 : i9 = HEAP32[i3 >> 2] | 0;
16305 0 : if ((i9 | 0) == 0) {
16306 0 : i9 = 0;
16307 0 : } else {
16308 0 : i9 = _luaZ_openspace(HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0, i9) | 0;
16309 0 : if ((_luaZ_read(HEAP32[i4 >> 2] | 0, i9, HEAP32[i3 >> 2] | 0) | 0) != 0) {
16310 0 : i9 = 126;
16311 0 : break;
16312 0 : }
16313 0 : i9 = _luaS_newlstr(HEAP32[i2 >> 2] | 0, i9, (HEAP32[i3 >> 2] | 0) + -1 | 0) | 0;
16314 0 : }
16315 0 : HEAP32[(HEAP32[i8 >> 2] | 0) + (i7 << 3) >> 2] = i9;
16316 0 : i7 = i7 + 1 | 0;
16317 0 : if ((i7 | 0) >= (i6 | 0)) {
16318 0 : i9 = 129;
16319 0 : break;
16320 0 : }
16321 0 : }
16322 0 : if ((i9 | 0) == 123) {
16323 0 : _error(i2, 8824);
16324 0 : } else if ((i9 | 0) == 126) {
16325 0 : _error(i2, 8824);
16326 0 : } else if ((i9 | 0) == 129) {
16327 0 : STACKTOP = i1;
16328 0 : return;
16329 0 : }
16330 1 : }
16331 88 : function _exp2reg(i4, i1, i7) {
16332 88 : i4 = i4 | 0;
16333 88 : i1 = i1 | 0;
16334 88 : i7 = i7 | 0;
16335 88 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0;
16336 88 : i5 = STACKTOP;
16337 88 : _discharge2reg(i4, i1, i7);
16338 88 : i6 = i1 + 16 | 0;
16339 88 : do {
16340 88 : if ((HEAP32[i1 >> 2] | 0) == 10 ? (i10 = HEAP32[i1 + 8 >> 2] | 0, !((i10 | 0) == -1)) : 0) {
16341 88 : i22 = HEAP32[i6 >> 2] | 0;
16342 88 : if ((i22 | 0) == -1) {
16343 88 : HEAP32[i6 >> 2] = i10;
16344 88 : break;
16345 88 : }
16346 88 : i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16347 88 : while (1) {
16348 88 : i19 = i20 + (i22 << 2) | 0;
16349 88 : i21 = HEAP32[i19 >> 2] | 0;
16350 88 : i23 = (i21 >>> 14) + -131071 | 0;
16351 88 : if ((i23 | 0) == -1) {
16352 88 : break;
16353 88 : }
16354 88 : i23 = i22 + 1 + i23 | 0;
16355 88 : if ((i23 | 0) == -1) {
16356 88 : break;
16357 88 : } else {
16358 88 : i22 = i23;
16359 88 : }
16360 88 : }
16361 88 : i10 = i10 + ~i22 | 0;
16362 88 : if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
16363 88 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
16364 88 : } else {
16365 88 : HEAP32[i19 >> 2] = (i10 << 14) + 2147467264 | i21 & 16383;
16366 88 : break;
16367 88 : }
16368 88 : }
16369 88 : } while (0);
16370 88 : i21 = HEAP32[i6 >> 2] | 0;
16371 88 : i10 = i1 + 20 | 0;
16372 88 : i19 = HEAP32[i10 >> 2] | 0;
16373 88 : if ((i21 | 0) == (i19 | 0)) {
16374 88 : HEAP32[i6 >> 2] = -1;
16375 88 : HEAP32[i10 >> 2] = -1;
16376 88 : i25 = i1 + 8 | 0;
16377 88 : HEAP32[i25 >> 2] = i7;
16378 88 : HEAP32[i1 >> 2] = 6;
16379 88 : STACKTOP = i5;
16380 88 : return;
16381 88 : }
16382 88 : L18 : do {
16383 88 : if ((i21 | 0) == -1) {
16384 88 : i18 = 20;
16385 88 : } else {
16386 88 : i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16387 88 : while (1) {
16388 88 : i23 = i20 + (i21 << 2) | 0;
16389 88 : if ((i21 | 0) > 0 ? (i18 = HEAP32[i20 + (i21 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i18 & 63) | 0] | 0) < 0) : 0) {
16390 88 : i22 = i18;
16391 88 : } else {
16392 88 : i22 = HEAP32[i23 >> 2] | 0;
16393 88 : }
16394 88 : if ((i22 & 63 | 0) != 28) {
16395 88 : i18 = 28;
16396 88 : break L18;
16397 88 : }
16398 88 : i22 = ((HEAP32[i23 >> 2] | 0) >>> 14) + -131071 | 0;
16399 88 : if ((i22 | 0) == -1) {
16400 88 : i18 = 20;
16401 88 : break L18;
16402 88 : }
16403 88 : i21 = i21 + 1 + i22 | 0;
16404 88 : if ((i21 | 0) == -1) {
16405 88 : i18 = 20;
16406 88 : break;
16407 88 : }
16408 88 : }
16409 88 : }
16410 88 : } while (0);
16411 88 : L29 : do {
16412 88 : if ((i18 | 0) == 20) {
16413 88 : if ((i19 | 0) == -1) {
16414 88 : i15 = -1;
16415 88 : i8 = -1;
16416 88 : } else {
16417 88 : i20 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16418 88 : while (1) {
16419 88 : i21 = i20 + (i19 << 2) | 0;
16420 88 : if ((i19 | 0) > 0 ? (i17 = HEAP32[i20 + (i19 + -1 << 2) >> 2] | 0, (HEAP8[5584 + (i17 & 63) | 0] | 0) < 0) : 0) {
16421 88 : i22 = i17;
16422 88 : } else {
16423 88 : i22 = HEAP32[i21 >> 2] | 0;
16424 88 : }
16425 88 : if ((i22 & 63 | 0) != 28) {
16426 88 : i18 = 28;
16427 88 : break L29;
16428 88 : }
16429 88 : i21 = ((HEAP32[i21 >> 2] | 0) >>> 14) + -131071 | 0;
16430 88 : if ((i21 | 0) == -1) {
16431 88 : i15 = -1;
16432 88 : i8 = -1;
16433 88 : break L29;
16434 88 : }
16435 88 : i19 = i19 + 1 + i21 | 0;
16436 88 : if ((i19 | 0) == -1) {
16437 88 : i15 = -1;
16438 88 : i8 = -1;
16439 88 : break;
16440 88 : }
16441 88 : }
16442 88 : }
16443 88 : }
16444 88 : } while (0);
16445 88 : do {
16446 88 : if ((i18 | 0) == 28) {
16447 88 : i17 = i4 + 28 | 0;
16448 88 : do {
16449 88 : if ((HEAP32[i1 >> 2] | 0) != 10) {
16450 88 : i21 = HEAP32[i17 >> 2] | 0;
16451 88 : HEAP32[i17 >> 2] = -1;
16452 88 : i18 = _luaK_code(i4, 2147450903) | 0;
16453 88 : if (!((i21 | 0) == -1)) {
16454 88 : if (!((i18 | 0) == -1)) {
16455 88 : i23 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16456 88 : i22 = i18;
16457 88 : while (1) {
16458 88 : i20 = i23 + (i22 << 2) | 0;
16459 88 : i19 = HEAP32[i20 >> 2] | 0;
16460 88 : i24 = (i19 >>> 14) + -131071 | 0;
16461 88 : if ((i24 | 0) == -1) {
16462 88 : break;
16463 88 : }
16464 88 : i24 = i22 + 1 + i24 | 0;
16465 88 : if ((i24 | 0) == -1) {
16466 88 : break;
16467 88 : } else {
16468 88 : i22 = i24;
16469 88 : }
16470 88 : }
16471 88 : i21 = i21 + ~i22 | 0;
16472 88 : if ((((i21 | 0) > -1 ? i21 : 0 - i21 | 0) | 0) > 131071) {
16473 88 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
16474 88 : } else {
16475 88 : HEAP32[i20 >> 2] = (i21 << 14) + 2147467264 | i19 & 16383;
16476 88 : i16 = i18;
16477 88 : break;
16478 88 : }
16479 88 : } else {
16480 88 : i16 = i21;
16481 88 : }
16482 88 : } else {
16483 88 : i16 = i18;
16484 88 : }
16485 88 : } else {
16486 88 : i16 = -1;
16487 88 : }
16488 88 : } while (0);
16489 88 : i24 = i4 + 20 | 0;
16490 88 : i25 = i4 + 24 | 0;
16491 88 : HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
16492 88 : i19 = i7 << 6;
16493 88 : i18 = _luaK_code(i4, i19 | 16387) | 0;
16494 88 : HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
16495 88 : i19 = _luaK_code(i4, i19 | 8388611) | 0;
16496 88 : HEAP32[i25 >> 2] = HEAP32[i24 >> 2];
16497 88 : if (!((i16 | 0) == -1)) {
16498 88 : i22 = HEAP32[i17 >> 2] | 0;
16499 88 : if ((i22 | 0) == -1) {
16500 88 : HEAP32[i17 >> 2] = i16;
16501 88 : i15 = i18;
16502 88 : i8 = i19;
16503 88 : break;
16504 88 : }
16505 88 : i17 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16506 88 : while (1) {
16507 88 : i21 = i17 + (i22 << 2) | 0;
16508 88 : i20 = HEAP32[i21 >> 2] | 0;
16509 88 : i23 = (i20 >>> 14) + -131071 | 0;
16510 88 : if ((i23 | 0) == -1) {
16511 88 : break;
16512 88 : }
16513 88 : i23 = i22 + 1 + i23 | 0;
16514 88 : if ((i23 | 0) == -1) {
16515 88 : break;
16516 88 : } else {
16517 88 : i22 = i23;
16518 88 : }
16519 88 : }
16520 88 : i16 = i16 + ~i22 | 0;
16521 88 : if ((((i16 | 0) > -1 ? i16 : 0 - i16 | 0) | 0) > 131071) {
16522 88 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
16523 88 : } else {
16524 88 : HEAP32[i21 >> 2] = (i16 << 14) + 2147467264 | i20 & 16383;
16525 88 : i15 = i18;
16526 88 : i8 = i19;
16527 88 : break;
16528 88 : }
16529 88 : } else {
16530 88 : i15 = i18;
16531 88 : i8 = i19;
16532 88 : }
16533 88 : }
16534 88 : } while (0);
16535 88 : i16 = HEAP32[i4 + 20 >> 2] | 0;
16536 88 : HEAP32[i4 + 24 >> 2] = i16;
16537 88 : i22 = HEAP32[i10 >> 2] | 0;
16538 88 : L67 : do {
16539 88 : if (!((i22 | 0) == -1)) {
16540 88 : i19 = (i7 | 0) == 255;
16541 88 : i17 = i7 << 6 & 16320;
16542 88 : i18 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16543 88 : while (1) {
16544 88 : i20 = i18 + (i22 << 2) | 0;
16545 88 : i23 = HEAP32[i20 >> 2] | 0;
16546 88 : i21 = (i23 >>> 14) + -131071 | 0;
16547 88 : if ((i21 | 0) == -1) {
16548 88 : i21 = -1;
16549 88 : } else {
16550 88 : i21 = i22 + 1 + i21 | 0;
16551 88 : }
16552 88 : if ((i22 | 0) > 0 ? (i14 = i18 + (i22 + -1 << 2) | 0, i13 = HEAP32[i14 >> 2] | 0, (HEAP8[5584 + (i13 & 63) | 0] | 0) < 0) : 0) {
16553 88 : i24 = i14;
16554 88 : i25 = i13;
16555 88 : } else {
16556 88 : i24 = i20;
16557 88 : i25 = i23;
16558 88 : }
16559 88 : if ((i25 & 63 | 0) == 28) {
16560 88 : i23 = i25 >>> 23;
16561 88 : if (i19 | (i23 | 0) == (i7 | 0)) {
16562 88 : i23 = i25 & 8372224 | i23 << 6 | 27;
16563 88 : } else {
16564 88 : i23 = i25 & -16321 | i17;
16565 88 : }
16566 88 : HEAP32[i24 >> 2] = i23;
16567 88 : i22 = i16 + ~i22 | 0;
16568 88 : if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
16569 88 : i18 = 58;
16570 88 : break;
16571 88 : }
16572 88 : i22 = HEAP32[i20 >> 2] & 16383 | (i22 << 14) + 2147467264;
16573 88 : } else {
16574 88 : i22 = i15 + ~i22 | 0;
16575 88 : if ((((i22 | 0) > -1 ? i22 : 0 - i22 | 0) | 0) > 131071) {
16576 88 : i18 = 61;
16577 88 : break;
16578 88 : }
16579 88 : i22 = i23 & 16383 | (i22 << 14) + 2147467264;
16580 88 : }
16581 88 : HEAP32[i20 >> 2] = i22;
16582 88 : if ((i21 | 0) == -1) {
16583 88 : break L67;
16584 88 : } else {
16585 88 : i22 = i21;
16586 88 : }
16587 88 : }
16588 88 : if ((i18 | 0) == 58) {
16589 88 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
16590 88 : } else if ((i18 | 0) == 61) {
16591 88 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
16592 88 : }
16593 88 : }
16594 88 : } while (0);
16595 88 : i20 = HEAP32[i6 >> 2] | 0;
16596 88 : if ((i20 | 0) == -1) {
16597 88 : HEAP32[i6 >> 2] = -1;
16598 88 : HEAP32[i10 >> 2] = -1;
16599 88 : i25 = i1 + 8 | 0;
16600 88 : HEAP32[i25 >> 2] = i7;
16601 88 : HEAP32[i1 >> 2] = 6;
16602 88 : STACKTOP = i5;
16603 88 : return;
16604 88 : }
16605 88 : i13 = i7 << 6;
16606 88 : i15 = i13 & 16320;
16607 88 : i14 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
16608 88 : if ((i7 | 0) == 255) {
16609 88 : while (1) {
16610 88 : i17 = i14 + (i20 << 2) | 0;
16611 88 : i19 = HEAP32[i17 >> 2] | 0;
16612 88 : i18 = (i19 >>> 14) + -131071 | 0;
16613 88 : if ((i18 | 0) == -1) {
16614 88 : i18 = -1;
16615 88 : } else {
16616 88 : i18 = i20 + 1 + i18 | 0;
16617 88 : }
16618 88 : if ((i20 | 0) > 0 ? (i12 = i14 + (i20 + -1 << 2) | 0, i11 = HEAP32[i12 >> 2] | 0, (HEAP8[5584 + (i11 & 63) | 0] | 0) < 0) : 0) {
16619 88 : i22 = i12;
16620 88 : i21 = i11;
16621 88 : } else {
16622 88 : i22 = i17;
16623 88 : i21 = i19;
16624 88 : }
16625 88 : if ((i21 & 63 | 0) == 28) {
16626 88 : HEAP32[i22 >> 2] = i21 & 8372224 | i21 >>> 23 << 6 | 27;
16627 88 : i19 = i16 + ~i20 | 0;
16628 88 : if ((((i19 | 0) > -1 ? i19 : 0 - i19 | 0) | 0) > 131071) {
16629 88 : i18 = 87;
16630 88 : break;
16631 88 : }
16632 88 : i19 = HEAP32[i17 >> 2] & 16383 | (i19 << 14) + 2147467264;
16633 88 : } else {
16634 88 : i20 = i8 + ~i20 | 0;
16635 88 : if ((((i20 | 0) > -1 ? i20 : 0 - i20 | 0) | 0) > 131071) {
16636 88 : i18 = 90;
16637 88 : break;
16638 88 : }
16639 88 : i19 = i19 & 16383 | (i20 << 14) + 2147467264;
16640 88 : }
16641 88 : HEAP32[i17 >> 2] = i19;
16642 88 : if ((i18 | 0) == -1) {
16643 88 : i18 = 93;
16644 88 : break;
16645 88 : } else {
16646 88 : i20 = i18;
16647 88 : }
16648 88 : }
16649 88 : if ((i18 | 0) == 87) {
16650 88 : i25 = i4 + 12 | 0;
16651 88 : i25 = HEAP32[i25 >> 2] | 0;
16652 88 : _luaX_syntaxerror(i25, 10624);
16653 88 : } else if ((i18 | 0) == 90) {
16654 88 : i25 = i4 + 12 | 0;
16655 88 : i25 = HEAP32[i25 >> 2] | 0;
16656 88 : _luaX_syntaxerror(i25, 10624);
16657 88 : } else if ((i18 | 0) == 93) {
16658 88 : HEAP32[i6 >> 2] = -1;
16659 88 : HEAP32[i10 >> 2] = -1;
16660 88 : i25 = i1 + 8 | 0;
16661 88 : HEAP32[i25 >> 2] = i7;
16662 88 : HEAP32[i1 >> 2] = 6;
16663 88 : STACKTOP = i5;
16664 88 : return;
16665 88 : }
16666 88 : } else {
16667 88 : i9 = i20;
16668 88 : }
16669 88 : while (1) {
16670 88 : i11 = i14 + (i9 << 2) | 0;
16671 88 : i17 = HEAP32[i11 >> 2] | 0;
16672 88 : i12 = (i17 >>> 14) + -131071 | 0;
16673 88 : if ((i12 | 0) == -1) {
16674 88 : i12 = -1;
16675 88 : } else {
16676 88 : i12 = i9 + 1 + i12 | 0;
16677 88 : }
16678 88 : if ((i9 | 0) > 0 ? (i3 = i14 + (i9 + -1 << 2) | 0, i2 = HEAP32[i3 >> 2] | 0, (HEAP8[5584 + (i2 & 63) | 0] | 0) < 0) : 0) {
16679 88 : i18 = i3;
16680 88 : i19 = i2;
16681 88 : } else {
16682 88 : i18 = i11;
16683 88 : i19 = i17;
16684 88 : }
16685 88 : if ((i19 & 63 | 0) == 28) {
16686 88 : if ((i19 >>> 23 | 0) == (i7 | 0)) {
16687 88 : i17 = i19 & 8372224 | i13 | 27;
16688 88 : } else {
16689 88 : i17 = i19 & -16321 | i15;
16690 88 : }
16691 88 : HEAP32[i18 >> 2] = i17;
16692 88 : i9 = i16 + ~i9 | 0;
16693 88 : if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
16694 88 : i18 = 87;
16695 88 : break;
16696 88 : }
16697 88 : i9 = HEAP32[i11 >> 2] & 16383 | (i9 << 14) + 2147467264;
16698 88 : } else {
16699 88 : i9 = i8 + ~i9 | 0;
16700 88 : if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
16701 88 : i18 = 90;
16702 88 : break;
16703 88 : }
16704 88 : i9 = i17 & 16383 | (i9 << 14) + 2147467264;
16705 88 : }
16706 88 : HEAP32[i11 >> 2] = i9;
16707 88 : if ((i12 | 0) == -1) {
16708 88 : i18 = 93;
16709 88 : break;
16710 88 : } else {
16711 88 : i9 = i12;
16712 88 : }
16713 88 : }
16714 88 : if ((i18 | 0) == 87) {
16715 88 : i25 = i4 + 12 | 0;
16716 88 : i25 = HEAP32[i25 >> 2] | 0;
16717 88 : _luaX_syntaxerror(i25, 10624);
16718 88 : } else if ((i18 | 0) == 90) {
16719 88 : i25 = i4 + 12 | 0;
16720 88 : i25 = HEAP32[i25 >> 2] | 0;
16721 88 : _luaX_syntaxerror(i25, 10624);
16722 88 : } else if ((i18 | 0) == 93) {
16723 88 : HEAP32[i6 >> 2] = -1;
16724 88 : HEAP32[i10 >> 2] = -1;
16725 88 : i25 = i1 + 8 | 0;
16726 88 : HEAP32[i25 >> 2] = i7;
16727 88 : HEAP32[i1 >> 2] = 6;
16728 88 : STACKTOP = i5;
16729 88 : return;
16730 88 : }
16731 88 : }
16732 47986 : function _propagatemark(i2) {
16733 47986 : i2 = i2 | 0;
16734 47986 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
16735 47986 : i1 = STACKTOP;
16736 47986 : i15 = i2 + 84 | 0;
16737 47986 : i3 = HEAP32[i15 >> 2] | 0;
16738 47986 : i10 = i3 + 5 | 0;
16739 47986 : HEAP8[i10] = HEAPU8[i10] | 4;
16740 47986 : switch (HEAPU8[i3 + 4 | 0] | 0) {
16741 47986 : case 5:
16742 47986 : {
16743 47986 : i9 = i3 + 24 | 0;
16744 47986 : HEAP32[i15 >> 2] = HEAP32[i9 >> 2];
16745 47986 : i15 = i3 + 8 | 0;
16746 47986 : i14 = HEAP32[i15 >> 2] | 0;
16747 47986 : do {
16748 47986 : if ((i14 | 0) != 0) {
16749 47986 : if ((HEAP8[i14 + 6 | 0] & 8) == 0) {
16750 47986 : i11 = _luaT_gettm(i14, 3, HEAP32[i2 + 196 >> 2] | 0) | 0;
16751 47986 : i14 = HEAP32[i15 >> 2] | 0;
16752 47986 : if ((i14 | 0) != 0) {
16753 47986 : i6 = 5;
16754 47986 : }
16755 47986 : } else {
16756 47986 : i11 = 0;
16757 47986 : i6 = 5;
16758 47986 : }
16759 47986 : if ((i6 | 0) == 5) {
16760 47986 : if (!((HEAP8[i14 + 5 | 0] & 3) == 0)) {
16761 47986 : _reallymarkobject(i2, i14);
16762 47986 : }
16763 47986 : }
16764 47986 : if (((i11 | 0) != 0 ? (HEAP32[i11 + 8 >> 2] & 15 | 0) == 4 : 0) ? (i13 = (HEAP32[i11 >> 2] | 0) + 16 | 0, i12 = _strchr(i13, 107) | 0, i12 = (i12 | 0) != 0, i13 = (_strchr(i13, 118) | 0) == 0, !(i13 & (i12 ^ 1))) : 0) {
16765 47986 : HEAP8[i10] = HEAP8[i10] & 251;
16766 47986 : if (i12) {
16767 47986 : if (i13) {
16768 47986 : _traverseephemeron(i2, i3) | 0;
16769 47986 : break;
16770 47986 : } else {
16771 47986 : i15 = i2 + 100 | 0;
16772 47986 : HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
16773 47986 : HEAP32[i15 >> 2] = i3;
16774 47986 : break;
16775 47986 : }
16776 47986 : }
16777 47986 : i15 = 1 << HEAPU8[i3 + 7 | 0];
16778 47986 : i5 = HEAP32[i3 + 16 >> 2] | 0;
16779 47986 : i4 = i5 + (i15 << 5) | 0;
16780 47986 : i8 = (HEAP32[i3 + 28 >> 2] | 0) > 0 | 0;
16781 47986 : if ((i15 | 0) > 0) {
16782 47986 : do {
16783 47986 : i12 = i5 + 8 | 0;
16784 47986 : i10 = i5 + 24 | 0;
16785 47986 : i11 = (HEAP32[i10 >> 2] & 64 | 0) == 0;
16786 47986 : do {
16787 47986 : if ((HEAP32[i12 >> 2] | 0) == 0) {
16788 47986 : if (!i11 ? !((HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
16789 47986 : HEAP32[i10 >> 2] = 11;
16790 47986 : }
16791 47986 : } else {
16792 47986 : if (!i11 ? (i7 = HEAP32[i5 + 16 >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
16793 47986 : _reallymarkobject(i2, i7);
16794 47986 : }
16795 47986 : if ((i8 | 0) == 0) {
16796 47986 : i10 = HEAP32[i12 >> 2] | 0;
16797 47986 : if ((i10 & 64 | 0) != 0) {
16798 47986 : i8 = HEAP32[i5 >> 2] | 0;
16799 47986 : if ((i10 & 15 | 0) != 4) {
16800 47986 : i8 = (HEAP8[i8 + 5 | 0] & 3) != 0 | 0;
16801 47986 : break;
16802 47986 : }
16803 47986 : if ((i8 | 0) != 0 ? !((HEAP8[i8 + 5 | 0] & 3) == 0) : 0) {
16804 47986 : _reallymarkobject(i2, i8);
16805 47986 : i8 = 0;
16806 47986 : } else {
16807 47986 : i8 = 0;
16808 47986 : }
16809 47986 : } else {
16810 47986 : i8 = 0;
16811 47986 : }
16812 47986 : }
16813 47986 : }
16814 47986 : } while (0);
16815 47986 : i5 = i5 + 32 | 0;
16816 47986 : } while (i5 >>> 0 < i4 >>> 0);
16817 47986 : }
16818 47986 : if ((i8 | 0) == 0) {
16819 47986 : i15 = i2 + 88 | 0;
16820 47986 : HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
16821 47986 : HEAP32[i15 >> 2] = i3;
16822 47986 : break;
16823 47986 : } else {
16824 47986 : i15 = i2 + 92 | 0;
16825 47986 : HEAP32[i9 >> 2] = HEAP32[i15 >> 2];
16826 47986 : HEAP32[i15 >> 2] = i3;
16827 47986 : break;
16828 47986 : }
16829 47986 : } else {
16830 47986 : i6 = 33;
16831 47986 : }
16832 47986 : } else {
16833 47986 : i6 = 33;
16834 47986 : }
16835 47986 : } while (0);
16836 47986 : if ((i6 | 0) == 33) {
16837 47986 : i7 = i3 + 16 | 0;
16838 47986 : i10 = HEAP32[i7 >> 2] | 0;
16839 47986 : i6 = i10 + (1 << HEAPU8[i3 + 7 | 0] << 5) | 0;
16840 47986 : i9 = i3 + 28 | 0;
16841 47986 : i13 = HEAP32[i9 >> 2] | 0;
16842 47986 : if ((i13 | 0) > 0) {
16843 47986 : i10 = i3 + 12 | 0;
16844 47986 : i11 = 0;
16845 47986 : do {
16846 47986 : i12 = HEAP32[i10 >> 2] | 0;
16847 47986 : if ((HEAP32[i12 + (i11 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i8 = HEAP32[i12 + (i11 << 4) >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 3) == 0)) : 0) {
16848 47986 : _reallymarkobject(i2, i8);
16849 47986 : i13 = HEAP32[i9 >> 2] | 0;
16850 47986 : }
16851 47986 : i11 = i11 + 1 | 0;
16852 47986 : } while ((i11 | 0) < (i13 | 0));
16853 47986 : i7 = HEAP32[i7 >> 2] | 0;
16854 47986 : } else {
16855 47986 : i7 = i10;
16856 47986 : }
16857 47986 : if (i7 >>> 0 < i6 >>> 0) {
16858 47986 : do {
16859 47986 : i10 = i7 + 8 | 0;
16860 47986 : i11 = HEAP32[i10 >> 2] | 0;
16861 47986 : i9 = i7 + 24 | 0;
16862 47986 : i8 = (HEAP32[i9 >> 2] & 64 | 0) == 0;
16863 47986 : if ((i11 | 0) == 0) {
16864 47986 : if (!i8 ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
16865 47986 : HEAP32[i9 >> 2] = 11;
16866 47986 : }
16867 47986 : } else {
16868 47986 : if (!i8 ? (i5 = HEAP32[i7 + 16 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
16869 47986 : _reallymarkobject(i2, i5);
16870 47986 : i11 = HEAP32[i10 >> 2] | 0;
16871 47986 : }
16872 47986 : if ((i11 & 64 | 0) != 0 ? (i4 = HEAP32[i7 >> 2] | 0, !((HEAP8[i4 + 5 | 0] & 3) == 0)) : 0) {
16873 47986 : _reallymarkobject(i2, i4);
16874 47986 : }
16875 47986 : }
16876 47986 : i7 = i7 + 32 | 0;
16877 47986 : } while (i7 >>> 0 < i6 >>> 0);
16878 47986 : }
16879 47986 : }
16880 47986 : i3 = (HEAP32[i3 + 28 >> 2] << 4) + 32 + (32 << HEAPU8[i3 + 7 | 0]) | 0;
16881 47986 : break;
16882 47986 : }
16883 47986 : case 8:
16884 47986 : {
16885 47986 : i7 = i3 + 60 | 0;
16886 47986 : HEAP32[i15 >> 2] = HEAP32[i7 >> 2];
16887 47986 : i4 = i2 + 88 | 0;
16888 47986 : HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
16889 47986 : HEAP32[i4 >> 2] = i3;
16890 47986 : HEAP8[i10] = HEAP8[i10] & 251;
16891 47986 : i4 = i3 + 28 | 0;
16892 47986 : i7 = HEAP32[i4 >> 2] | 0;
16893 47986 : if ((i7 | 0) == 0) {
16894 47986 : i3 = 1;
16895 47986 : } else {
16896 47986 : i5 = i3 + 8 | 0;
16897 47986 : i6 = HEAP32[i5 >> 2] | 0;
16898 47986 : if (i7 >>> 0 < i6 >>> 0) {
16899 47986 : do {
16900 47986 : if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i11 = HEAP32[i7 >> 2] | 0, !((HEAP8[i11 + 5 | 0] & 3) == 0)) : 0) {
16901 47986 : _reallymarkobject(i2, i11);
16902 47986 : i6 = HEAP32[i5 >> 2] | 0;
16903 47986 : }
16904 47986 : i7 = i7 + 16 | 0;
16905 47986 : } while (i7 >>> 0 < i6 >>> 0);
16906 47986 : }
16907 47986 : if ((HEAP8[i2 + 61 | 0] | 0) == 1) {
16908 47986 : i3 = i3 + 32 | 0;
16909 47986 : i4 = (HEAP32[i4 >> 2] | 0) + (HEAP32[i3 >> 2] << 4) | 0;
16910 47986 : if (i7 >>> 0 < i4 >>> 0) {
16911 47986 : do {
16912 47986 : HEAP32[i7 + 8 >> 2] = 0;
16913 47986 : i7 = i7 + 16 | 0;
16914 47986 : } while (i7 >>> 0 < i4 >>> 0);
16915 47986 : }
16916 47986 : } else {
16917 47986 : i3 = i3 + 32 | 0;
16918 47986 : }
16919 47986 : i3 = (HEAP32[i3 >> 2] << 4) + 112 | 0;
16920 47986 : }
16921 47986 : break;
16922 47986 : }
16923 47986 : case 9:
16924 47986 : {
16925 47986 : HEAP32[i15 >> 2] = HEAP32[i3 + 72 >> 2];
16926 47986 : i5 = i3 + 32 | 0;
16927 47986 : i4 = HEAP32[i5 >> 2] | 0;
16928 47986 : if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
16929 47986 : HEAP32[i5 >> 2] = 0;
16930 47986 : }
16931 47986 : i4 = HEAP32[i3 + 36 >> 2] | 0;
16932 47986 : if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
16933 47986 : _reallymarkobject(i2, i4);
16934 47986 : }
16935 47986 : i4 = i3 + 44 | 0;
16936 47986 : i8 = HEAP32[i4 >> 2] | 0;
16937 47986 : if ((i8 | 0) > 0) {
16938 47986 : i5 = i3 + 8 | 0;
16939 47986 : i6 = 0;
16940 47986 : do {
16941 47986 : i7 = HEAP32[i5 >> 2] | 0;
16942 47986 : if ((HEAP32[i7 + (i6 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i9 = HEAP32[i7 + (i6 << 4) >> 2] | 0, !((HEAP8[i9 + 5 | 0] & 3) == 0)) : 0) {
16943 47986 : _reallymarkobject(i2, i9);
16944 47986 : i8 = HEAP32[i4 >> 2] | 0;
16945 47986 : }
16946 47986 : i6 = i6 + 1 | 0;
16947 47986 : } while ((i6 | 0) < (i8 | 0));
16948 47986 : }
16949 47986 : i5 = i3 + 40 | 0;
16950 47986 : i8 = HEAP32[i5 >> 2] | 0;
16951 47986 : if ((i8 | 0) > 0) {
16952 47986 : i6 = i3 + 28 | 0;
16953 47986 : i7 = 0;
16954 47986 : do {
16955 47986 : i9 = HEAP32[(HEAP32[i6 >> 2] | 0) + (i7 << 3) >> 2] | 0;
16956 47986 : if ((i9 | 0) != 0 ? !((HEAP8[i9 + 5 | 0] & 3) == 0) : 0) {
16957 47986 : _reallymarkobject(i2, i9);
16958 47986 : i8 = HEAP32[i5 >> 2] | 0;
16959 47986 : }
16960 47986 : i7 = i7 + 1 | 0;
16961 47986 : } while ((i7 | 0) < (i8 | 0));
16962 47986 : }
16963 47986 : i6 = i3 + 56 | 0;
16964 47986 : i8 = HEAP32[i6 >> 2] | 0;
16965 47986 : if ((i8 | 0) > 0) {
16966 47986 : i7 = i3 + 16 | 0;
16967 47986 : i9 = 0;
16968 47986 : do {
16969 47986 : i10 = HEAP32[(HEAP32[i7 >> 2] | 0) + (i9 << 2) >> 2] | 0;
16970 47986 : if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
16971 47986 : _reallymarkobject(i2, i10);
16972 47986 : i8 = HEAP32[i6 >> 2] | 0;
16973 47986 : }
16974 47986 : i9 = i9 + 1 | 0;
16975 47986 : } while ((i9 | 0) < (i8 | 0));
16976 47986 : }
16977 47986 : i7 = i3 + 60 | 0;
16978 47986 : i11 = HEAP32[i7 >> 2] | 0;
16979 47986 : if ((i11 | 0) > 0) {
16980 47986 : i8 = i3 + 24 | 0;
16981 47986 : i9 = 0;
16982 47986 : do {
16983 47986 : i10 = HEAP32[(HEAP32[i8 >> 2] | 0) + (i9 * 12 | 0) >> 2] | 0;
16984 47986 : if ((i10 | 0) != 0 ? !((HEAP8[i10 + 5 | 0] & 3) == 0) : 0) {
16985 47986 : _reallymarkobject(i2, i10);
16986 47986 : i11 = HEAP32[i7 >> 2] | 0;
16987 47986 : }
16988 47986 : i9 = i9 + 1 | 0;
16989 47986 : } while ((i9 | 0) < (i11 | 0));
16990 47986 : i8 = HEAP32[i6 >> 2] | 0;
16991 47986 : }
16992 47986 : i3 = (i11 * 12 | 0) + 80 + (HEAP32[i4 >> 2] << 4) + (HEAP32[i5 >> 2] << 3) + ((HEAP32[i3 + 48 >> 2] | 0) + i8 + (HEAP32[i3 + 52 >> 2] | 0) << 2) | 0;
16993 47986 : break;
16994 47986 : }
16995 47986 : case 38:
16996 47986 : {
16997 47986 : HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
16998 47986 : i4 = i3 + 6 | 0;
16999 47986 : i5 = HEAP8[i4] | 0;
17000 47986 : if (i5 << 24 >> 24 == 0) {
17001 47986 : i7 = i5 & 255;
17002 47986 : } else {
17003 47986 : i6 = 0;
17004 47986 : do {
17005 47986 : if ((HEAP32[i3 + (i6 << 4) + 24 >> 2] & 64 | 0) != 0 ? (i14 = HEAP32[i3 + (i6 << 4) + 16 >> 2] | 0, !((HEAP8[i14 + 5 | 0] & 3) == 0)) : 0) {
17006 47986 : _reallymarkobject(i2, i14);
17007 47986 : i5 = HEAP8[i4] | 0;
17008 47986 : }
17009 47986 : i6 = i6 + 1 | 0;
17010 47986 : i7 = i5 & 255;
17011 47986 : } while ((i6 | 0) < (i7 | 0));
17012 47986 : }
17013 47986 : i3 = (i7 << 4) + 16 | 0;
17014 47986 : break;
17015 47986 : }
17016 47986 : case 6:
17017 47986 : {
17018 47986 : HEAP32[i15 >> 2] = HEAP32[i3 + 8 >> 2];
17019 47986 : i4 = HEAP32[i3 + 12 >> 2] | 0;
17020 47986 : if ((i4 | 0) != 0 ? !((HEAP8[i4 + 5 | 0] & 3) == 0) : 0) {
17021 47986 : _reallymarkobject(i2, i4);
17022 47986 : }
17023 47986 : i4 = i3 + 6 | 0;
17024 47986 : i6 = HEAP8[i4] | 0;
17025 47986 : if (i6 << 24 >> 24 == 0) {
17026 47986 : i7 = i6 & 255;
17027 47986 : } else {
17028 47986 : i5 = 0;
17029 47986 : do {
17030 47986 : i7 = HEAP32[i3 + (i5 << 2) + 16 >> 2] | 0;
17031 47986 : if ((i7 | 0) != 0 ? !((HEAP8[i7 + 5 | 0] & 3) == 0) : 0) {
17032 47986 : _reallymarkobject(i2, i7);
17033 47986 : i6 = HEAP8[i4] | 0;
17034 47986 : }
17035 47986 : i5 = i5 + 1 | 0;
17036 47986 : i7 = i6 & 255;
17037 47986 : } while ((i5 | 0) < (i7 | 0));
17038 47986 : }
17039 47986 : i3 = (i7 << 2) + 16 | 0;
17040 47986 : break;
17041 47986 : }
17042 47986 : default:
17043 47986 : {
17044 47986 : STACKTOP = i1;
17045 47986 : return;
17046 47986 : }
17047 47986 : }
17048 47986 : i15 = i2 + 16 | 0;
17049 47986 : HEAP32[i15 >> 2] = (HEAP32[i15 >> 2] | 0) + i3;
17050 47986 : STACKTOP = i1;
17051 47986 : return;
17052 47986 : }
17053 1 : function _strstr(i8, i4) {
17054 0 : i8 = i8 | 0;
17055 0 : i4 = i4 | 0;
17056 0 : var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
17057 0 : i1 = STACKTOP;
17058 0 : STACKTOP = STACKTOP + 1056 | 0;
17059 0 : i6 = i1 + 1024 | 0;
17060 0 : i2 = i1;
17061 0 : i10 = HEAP8[i4] | 0;
17062 0 : if (i10 << 24 >> 24 == 0) {
17063 0 : i20 = i8;
17064 0 : STACKTOP = i1;
17065 0 : return i20 | 0;
17066 0 : }
17067 0 : i8 = _strchr(i8, i10 << 24 >> 24) | 0;
17068 0 : if ((i8 | 0) == 0) {
17069 0 : i20 = 0;
17070 0 : STACKTOP = i1;
17071 0 : return i20 | 0;
17072 0 : }
17073 0 : i13 = HEAP8[i4 + 1 | 0] | 0;
17074 0 : if (i13 << 24 >> 24 == 0) {
17075 0 : i20 = i8;
17076 0 : STACKTOP = i1;
17077 0 : return i20 | 0;
17078 0 : }
17079 0 : i11 = i8 + 1 | 0;
17080 0 : i9 = HEAP8[i11] | 0;
17081 0 : if (i9 << 24 >> 24 == 0) {
17082 0 : i20 = 0;
17083 0 : STACKTOP = i1;
17084 0 : return i20 | 0;
17085 0 : }
17086 0 : i15 = HEAP8[i4 + 2 | 0] | 0;
17087 0 : if (i15 << 24 >> 24 == 0) {
17088 0 : i2 = i13 & 255 | (i10 & 255) << 8;
17089 0 : i3 = i9;
17090 0 : i4 = HEAPU8[i8] << 8 | i9 & 255;
17091 0 : while (1) {
17092 0 : i5 = i4 & 65535;
17093 0 : if ((i5 | 0) == (i2 | 0)) {
17094 0 : break;
17095 0 : }
17096 0 : i11 = i11 + 1 | 0;
17097 0 : i4 = HEAP8[i11] | 0;
17098 0 : if (i4 << 24 >> 24 == 0) {
17099 0 : i3 = 0;
17100 0 : break;
17101 0 : } else {
17102 0 : i3 = i4;
17103 0 : i4 = i4 & 255 | i5 << 8;
17104 0 : }
17105 0 : }
17106 0 : i20 = i3 << 24 >> 24 == 0 ? 0 : i11 + -1 | 0;
17107 0 : STACKTOP = i1;
17108 0 : return i20 | 0;
17109 0 : }
17110 0 : i16 = i8 + 2 | 0;
17111 0 : i11 = HEAP8[i16] | 0;
17112 0 : if (i11 << 24 >> 24 == 0) {
17113 0 : i20 = 0;
17114 0 : STACKTOP = i1;
17115 0 : return i20 | 0;
17116 0 : }
17117 0 : i18 = HEAP8[i4 + 3 | 0] | 0;
17118 0 : if (i18 << 24 >> 24 == 0) {
17119 0 : i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8;
17120 0 : i4 = (i11 & 255) << 8 | (i9 & 255) << 16 | HEAPU8[i8] << 24;
17121 0 : if ((i4 | 0) == (i2 | 0)) {
17122 0 : i3 = 0;
17123 0 : } else {
17124 0 : do {
17125 0 : i16 = i16 + 1 | 0;
17126 0 : i3 = HEAP8[i16] | 0;
17127 0 : i4 = (i3 & 255 | i4) << 8;
17128 0 : i3 = i3 << 24 >> 24 == 0;
17129 0 : } while (!(i3 | (i4 | 0) == (i2 | 0)));
17130 0 : }
17131 0 : i20 = i3 ? 0 : i16 + -2 | 0;
17132 0 : STACKTOP = i1;
17133 0 : return i20 | 0;
17134 0 : }
17135 0 : i16 = i8 + 3 | 0;
17136 0 : i17 = HEAP8[i16] | 0;
17137 0 : if (i17 << 24 >> 24 == 0) {
17138 0 : i20 = 0;
17139 0 : STACKTOP = i1;
17140 0 : return i20 | 0;
17141 0 : }
17142 0 : if ((HEAP8[i4 + 4 | 0] | 0) == 0) {
17143 0 : i2 = (i13 & 255) << 16 | (i10 & 255) << 24 | (i15 & 255) << 8 | i18 & 255;
17144 0 : i3 = (i11 & 255) << 8 | (i9 & 255) << 16 | i17 & 255 | HEAPU8[i8] << 24;
17145 0 : if ((i3 | 0) == (i2 | 0)) {
17146 0 : i4 = 0;
17147 0 : } else {
17148 0 : do {
17149 0 : i16 = i16 + 1 | 0;
17150 0 : i4 = HEAP8[i16] | 0;
17151 0 : i3 = i4 & 255 | i3 << 8;
17152 0 : i4 = i4 << 24 >> 24 == 0;
17153 0 : } while (!(i4 | (i3 | 0) == (i2 | 0)));
17154 0 : }
17155 0 : i20 = i4 ? 0 : i16 + -3 | 0;
17156 0 : STACKTOP = i1;
17157 0 : return i20 | 0;
17158 0 : }
17159 0 : HEAP32[i6 + 0 >> 2] = 0;
17160 0 : HEAP32[i6 + 4 >> 2] = 0;
17161 0 : HEAP32[i6 + 8 >> 2] = 0;
17162 0 : HEAP32[i6 + 12 >> 2] = 0;
17163 0 : HEAP32[i6 + 16 >> 2] = 0;
17164 0 : HEAP32[i6 + 20 >> 2] = 0;
17165 0 : HEAP32[i6 + 24 >> 2] = 0;
17166 0 : HEAP32[i6 + 28 >> 2] = 0;
17167 0 : i9 = 0;
17168 0 : while (1) {
17169 0 : if ((HEAP8[i8 + i9 | 0] | 0) == 0) {
17170 0 : i14 = 0;
17171 0 : i12 = 80;
17172 0 : break;
17173 0 : }
17174 0 : i20 = i10 & 255;
17175 0 : i3 = i6 + (i20 >>> 5 << 2) | 0;
17176 0 : HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1 << (i20 & 31);
17177 0 : i3 = i9 + 1 | 0;
17178 0 : HEAP32[i2 + (i20 << 2) >> 2] = i3;
17179 0 : i10 = HEAP8[i4 + i3 | 0] | 0;
17180 0 : if (i10 << 24 >> 24 == 0) {
17181 0 : break;
17182 0 : } else {
17183 0 : i9 = i3;
17184 0 : }
17185 0 : }
17186 0 : if ((i12 | 0) == 80) {
17187 0 : STACKTOP = i1;
17188 0 : return i14 | 0;
17189 0 : }
17190 0 : L49 : do {
17191 0 : if (i3 >>> 0 > 1) {
17192 0 : i14 = 1;
17193 0 : i11 = -1;
17194 0 : i12 = 0;
17195 0 : L50 : while (1) {
17196 0 : i10 = 1;
17197 0 : while (1) {
17198 0 : i13 = i14;
17199 0 : L54 : while (1) {
17200 0 : i14 = 1;
17201 0 : while (1) {
17202 0 : i15 = HEAP8[i4 + (i14 + i11) | 0] | 0;
17203 0 : i16 = HEAP8[i4 + i13 | 0] | 0;
17204 0 : if (!(i15 << 24 >> 24 == i16 << 24 >> 24)) {
17205 0 : break L54;
17206 0 : }
17207 0 : i15 = i14 + 1 | 0;
17208 0 : if ((i14 | 0) == (i10 | 0)) {
17209 0 : break;
17210 0 : }
17211 0 : i13 = i15 + i12 | 0;
17212 0 : if (i13 >>> 0 < i3 >>> 0) {
17213 0 : i14 = i15;
17214 0 : } else {
17215 0 : break L50;
17216 0 : }
17217 0 : }
17218 0 : i12 = i12 + i10 | 0;
17219 0 : i13 = i12 + 1 | 0;
17220 0 : if (!(i13 >>> 0 < i3 >>> 0)) {
17221 0 : break L50;
17222 0 : }
17223 0 : }
17224 0 : i10 = i13 - i11 | 0;
17225 0 : if (!((i15 & 255) > (i16 & 255))) {
17226 0 : break;
17227 0 : }
17228 0 : i14 = i13 + 1 | 0;
17229 0 : if (i14 >>> 0 < i3 >>> 0) {
17230 0 : i12 = i13;
17231 0 : } else {
17232 0 : break L50;
17233 0 : }
17234 0 : }
17235 0 : i14 = i12 + 2 | 0;
17236 0 : if (i14 >>> 0 < i3 >>> 0) {
17237 0 : i11 = i12;
17238 0 : i12 = i12 + 1 | 0;
17239 0 : } else {
17240 0 : i11 = i12;
17241 0 : i10 = 1;
17242 0 : break;
17243 0 : }
17244 0 : }
17245 0 : i16 = 1;
17246 0 : i12 = -1;
17247 0 : i14 = 0;
17248 0 : while (1) {
17249 0 : i13 = 1;
17250 0 : while (1) {
17251 0 : i15 = i16;
17252 0 : L69 : while (1) {
17253 0 : i18 = 1;
17254 0 : while (1) {
17255 0 : i17 = HEAP8[i4 + (i18 + i12) | 0] | 0;
17256 0 : i16 = HEAP8[i4 + i15 | 0] | 0;
17257 0 : if (!(i17 << 24 >> 24 == i16 << 24 >> 24)) {
17258 0 : break L69;
17259 0 : }
17260 0 : i16 = i18 + 1 | 0;
17261 0 : if ((i18 | 0) == (i13 | 0)) {
17262 0 : break;
17263 0 : }
17264 0 : i15 = i16 + i14 | 0;
17265 0 : if (i15 >>> 0 < i3 >>> 0) {
17266 0 : i18 = i16;
17267 0 : } else {
17268 0 : i14 = i12;
17269 0 : break L49;
17270 0 : }
17271 0 : }
17272 0 : i14 = i14 + i13 | 0;
17273 0 : i15 = i14 + 1 | 0;
17274 0 : if (!(i15 >>> 0 < i3 >>> 0)) {
17275 0 : i14 = i12;
17276 0 : break L49;
17277 0 : }
17278 0 : }
17279 0 : i13 = i15 - i12 | 0;
17280 0 : if (!((i17 & 255) < (i16 & 255))) {
17281 0 : break;
17282 0 : }
17283 0 : i16 = i15 + 1 | 0;
17284 0 : if (i16 >>> 0 < i3 >>> 0) {
17285 0 : i14 = i15;
17286 0 : } else {
17287 0 : i14 = i12;
17288 0 : break L49;
17289 0 : }
17290 0 : }
17291 0 : i16 = i14 + 2 | 0;
17292 0 : if (i16 >>> 0 < i3 >>> 0) {
17293 0 : i12 = i14;
17294 0 : i14 = i14 + 1 | 0;
17295 0 : } else {
17296 0 : i13 = 1;
17297 0 : break;
17298 0 : }
17299 0 : }
17300 0 : } else {
17301 0 : i11 = -1;
17302 0 : i14 = -1;
17303 0 : i10 = 1;
17304 0 : i13 = 1;
17305 0 : }
17306 0 : } while (0);
17307 0 : i15 = (i14 + 1 | 0) >>> 0 > (i11 + 1 | 0) >>> 0;
17308 0 : i12 = i15 ? i13 : i10;
17309 0 : i11 = i15 ? i14 : i11;
17310 0 : i10 = i11 + 1 | 0;
17311 0 : if ((_memcmp(i4, i4 + i12 | 0, i10) | 0) == 0) {
17312 0 : i15 = i3 - i12 | 0;
17313 0 : i16 = i3 | 63;
17314 0 : if ((i3 | 0) != (i12 | 0)) {
17315 0 : i14 = i8;
17316 0 : i13 = 0;
17317 0 : i17 = i8;
17318 0 : L82 : while (1) {
17319 0 : i18 = i14;
17320 0 : do {
17321 0 : if ((i17 - i18 | 0) >>> 0 < i3 >>> 0) {
17322 0 : i19 = _memchr(i17, 0, i16) | 0;
17323 0 : if ((i19 | 0) != 0) {
17324 0 : if ((i19 - i18 | 0) >>> 0 < i3 >>> 0) {
17325 0 : i14 = 0;
17326 0 : i12 = 80;
17327 0 : break L82;
17328 0 : } else {
17329 0 : i17 = i19;
17330 0 : break;
17331 0 : }
17332 0 : } else {
17333 0 : i17 = i17 + i16 | 0;
17334 0 : break;
17335 0 : }
17336 0 : }
17337 0 : } while (0);
17338 0 : i18 = HEAPU8[i14 + i9 | 0] | 0;
17339 0 : if ((1 << (i18 & 31) & HEAP32[i6 + (i18 >>> 5 << 2) >> 2] | 0) == 0) {
17340 0 : i14 = i14 + i3 | 0;
17341 0 : i13 = 0;
17342 0 : continue;
17343 0 : }
17344 0 : i20 = HEAP32[i2 + (i18 << 2) >> 2] | 0;
17345 0 : i18 = i3 - i20 | 0;
17346 0 : if ((i3 | 0) != (i20 | 0)) {
17347 0 : i14 = i14 + ((i13 | 0) != 0 & i18 >>> 0 < i12 >>> 0 ? i15 : i18) | 0;
17348 0 : i13 = 0;
17349 0 : continue;
17350 0 : }
17351 0 : i20 = i10 >>> 0 > i13 >>> 0 ? i10 : i13;
17352 0 : i18 = HEAP8[i4 + i20 | 0] | 0;
17353 0 : L96 : do {
17354 0 : if (i18 << 24 >> 24 == 0) {
17355 0 : i19 = i10;
17356 0 : } else {
17357 0 : while (1) {
17358 0 : i19 = i20 + 1 | 0;
17359 0 : if (!(i18 << 24 >> 24 == (HEAP8[i14 + i20 | 0] | 0))) {
17360 0 : break;
17361 0 : }
17362 0 : i18 = HEAP8[i4 + i19 | 0] | 0;
17363 0 : if (i18 << 24 >> 24 == 0) {
17364 0 : i19 = i10;
17365 0 : break L96;
17366 0 : } else {
17367 0 : i20 = i19;
17368 0 : }
17369 0 : }
17370 0 : i14 = i14 + (i20 - i11) | 0;
17371 0 : i13 = 0;
17372 0 : continue L82;
17373 0 : }
17374 0 : } while (0);
17375 0 : while (1) {
17376 0 : if (!(i19 >>> 0 > i13 >>> 0)) {
17377 0 : break;
17378 0 : }
17379 0 : i18 = i19 + -1 | 0;
17380 0 : if ((HEAP8[i4 + i18 | 0] | 0) == (HEAP8[i14 + i18 | 0] | 0)) {
17381 0 : i19 = i18;
17382 0 : } else {
17383 0 : break;
17384 0 : }
17385 0 : }
17386 0 : if ((i19 | 0) == (i13 | 0)) {
17387 0 : i12 = 80;
17388 0 : break;
17389 0 : }
17390 0 : i14 = i14 + i12 | 0;
17391 0 : i13 = i15;
17392 0 : }
17393 0 : if ((i12 | 0) == 80) {
17394 0 : STACKTOP = i1;
17395 0 : return i14 | 0;
17396 0 : }
17397 0 : } else {
17398 0 : i5 = i16;
17399 0 : i7 = i3;
17400 0 : }
17401 0 : } else {
17402 0 : i7 = i3 - i11 + -1 | 0;
17403 0 : i5 = i3 | 63;
17404 0 : i7 = (i11 >>> 0 > i7 >>> 0 ? i11 : i7) + 1 | 0;
17405 0 : }
17406 0 : i12 = i4 + i10 | 0;
17407 0 : i14 = i8;
17408 0 : L111 : while (1) {
17409 0 : i13 = i14;
17410 0 : do {
17411 0 : if ((i8 - i13 | 0) >>> 0 < i3 >>> 0) {
17412 0 : i15 = _memchr(i8, 0, i5) | 0;
17413 0 : if ((i15 | 0) != 0) {
17414 0 : if ((i15 - i13 | 0) >>> 0 < i3 >>> 0) {
17415 0 : i14 = 0;
17416 0 : i12 = 80;
17417 0 : break L111;
17418 0 : } else {
17419 0 : i8 = i15;
17420 0 : break;
17421 0 : }
17422 0 : } else {
17423 0 : i8 = i8 + i5 | 0;
17424 0 : break;
17425 0 : }
17426 0 : }
17427 0 : } while (0);
17428 0 : i13 = HEAPU8[i14 + i9 | 0] | 0;
17429 0 : if ((1 << (i13 & 31) & HEAP32[i6 + (i13 >>> 5 << 2) >> 2] | 0) == 0) {
17430 0 : i14 = i14 + i3 | 0;
17431 0 : continue;
17432 0 : }
17433 0 : i13 = HEAP32[i2 + (i13 << 2) >> 2] | 0;
17434 0 : if ((i3 | 0) != (i13 | 0)) {
17435 0 : i14 = i14 + (i3 - i13) | 0;
17436 0 : continue;
17437 0 : }
17438 0 : i15 = HEAP8[i12] | 0;
17439 0 : L125 : do {
17440 0 : if (i15 << 24 >> 24 == 0) {
17441 0 : i13 = i10;
17442 0 : } else {
17443 0 : i16 = i10;
17444 0 : while (1) {
17445 0 : i13 = i16 + 1 | 0;
17446 0 : if (!(i15 << 24 >> 24 == (HEAP8[i14 + i16 | 0] | 0))) {
17447 0 : break;
17448 0 : }
17449 0 : i15 = HEAP8[i4 + i13 | 0] | 0;
17450 0 : if (i15 << 24 >> 24 == 0) {
17451 0 : i13 = i10;
17452 0 : break L125;
17453 0 : } else {
17454 0 : i16 = i13;
17455 0 : }
17456 0 : }
17457 0 : i14 = i14 + (i16 - i11) | 0;
17458 0 : continue L111;
17459 0 : }
17460 0 : } while (0);
17461 0 : do {
17462 0 : if ((i13 | 0) == 0) {
17463 0 : i12 = 80;
17464 0 : break L111;
17465 0 : }
17466 0 : i13 = i13 + -1 | 0;
17467 0 : } while ((HEAP8[i4 + i13 | 0] | 0) == (HEAP8[i14 + i13 | 0] | 0));
17468 0 : i14 = i14 + i7 | 0;
17469 0 : }
17470 0 : if ((i12 | 0) == 80) {
17471 0 : STACKTOP = i1;
17472 0 : return i14 | 0;
17473 0 : }
17474 0 : return 0;
17475 1 : }
17476 5 : function _str_format(i2) {
17477 5 : i2 = i2 | 0;
17478 5 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0, i22 = 0;
17479 5 : i12 = STACKTOP;
17480 5 : STACKTOP = STACKTOP + 1104 | 0;
17481 5 : i4 = i12;
17482 5 : i7 = i12 + 1060 | 0;
17483 5 : i9 = i12 + 1082 | 0;
17484 5 : i20 = i12 + 1056 | 0;
17485 5 : i10 = i12 + 16 | 0;
17486 5 : i5 = i12 + 1064 | 0;
17487 5 : i6 = i12 + 8 | 0;
17488 5 : i8 = _lua_gettop(i2) | 0;
17489 5 : i16 = _luaL_checklstring(i2, 1, i20) | 0;
17490 5 : i20 = HEAP32[i20 >> 2] | 0;
17491 5 : i3 = i16 + i20 | 0;
17492 5 : _luaL_buffinit(i2, i10);
17493 5 : L1 : do {
17494 5 : if ((i20 | 0) > 0) {
17495 5 : i1 = i10 + 8 | 0;
17496 5 : i13 = i10 + 4 | 0;
17497 5 : i14 = i5 + 1 | 0;
17498 5 : i19 = 1;
17499 5 : L3 : while (1) {
17500 5 : while (1) {
17501 5 : i15 = HEAP8[i16] | 0;
17502 5 : if (i15 << 24 >> 24 == 37) {
17503 5 : i18 = i16 + 1 | 0;
17504 5 : if ((HEAP8[i18] | 0) != 37) {
17505 5 : break;
17506 5 : }
17507 5 : i15 = HEAP32[i1 >> 2] | 0;
17508 5 : if (i15 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0) {
17509 5 : i17 = 37;
17510 5 : } else {
17511 5 : _luaL_prepbuffsize(i10, 1) | 0;
17512 5 : i15 = HEAP32[i1 >> 2] | 0;
17513 5 : i17 = HEAP8[i18] | 0;
17514 5 : }
17515 5 : HEAP32[i1 >> 2] = i15 + 1;
17516 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i15 | 0] = i17;
17517 5 : i16 = i16 + 2 | 0;
17518 5 : } else {
17519 5 : i17 = HEAP32[i1 >> 2] | 0;
17520 5 : if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17521 5 : _luaL_prepbuffsize(i10, 1) | 0;
17522 5 : i17 = HEAP32[i1 >> 2] | 0;
17523 5 : i15 = HEAP8[i16] | 0;
17524 5 : }
17525 5 : HEAP32[i1 >> 2] = i17 + 1;
17526 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = i15;
17527 5 : i16 = i16 + 1 | 0;
17528 5 : }
17529 5 : if (!(i16 >>> 0 < i3 >>> 0)) {
17530 5 : break L1;
17531 5 : }
17532 5 : }
17533 5 : i17 = _luaL_prepbuffsize(i10, 512) | 0;
17534 5 : i15 = i19 + 1 | 0;
17535 5 : if ((i19 | 0) >= (i8 | 0)) {
17536 5 : _luaL_argerror(i2, i15, 7648) | 0;
17537 5 : }
17538 5 : i19 = HEAP8[i18] | 0;
17539 5 : L22 : do {
17540 5 : if (i19 << 24 >> 24 == 0) {
17541 5 : i19 = 0;
17542 5 : i20 = i18;
17543 5 : } else {
17544 5 : i20 = i18;
17545 5 : while (1) {
17546 5 : i16 = i20 + 1 | 0;
17547 5 : if ((_memchr(7800, i19 << 24 >> 24, 6) | 0) == 0) {
17548 5 : break L22;
17549 5 : }
17550 5 : i19 = HEAP8[i16] | 0;
17551 5 : if (i19 << 24 >> 24 == 0) {
17552 5 : i19 = 0;
17553 5 : i20 = i16;
17554 5 : break;
17555 5 : } else {
17556 5 : i20 = i16;
17557 5 : }
17558 5 : }
17559 5 : }
17560 5 : } while (0);
17561 5 : i16 = i18;
17562 5 : if ((i20 - i16 | 0) >>> 0 > 5) {
17563 5 : _luaL_error(i2, 7808, i4) | 0;
17564 5 : i19 = HEAP8[i20] | 0;
17565 5 : }
17566 5 : i19 = ((i19 & 255) + -48 | 0) >>> 0 < 10 ? i20 + 1 | 0 : i20;
17567 5 : i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
17568 5 : i20 = HEAP8[i19] | 0;
17569 5 : if (i20 << 24 >> 24 == 46) {
17570 5 : i20 = i19 + 1 | 0;
17571 5 : i19 = ((HEAPU8[i20] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 2 | 0 : i20;
17572 5 : i19 = ((HEAPU8[i19] | 0) + -48 | 0) >>> 0 < 10 ? i19 + 1 | 0 : i19;
17573 5 : i20 = HEAP8[i19] | 0;
17574 5 : }
17575 5 : if (((i20 & 255) + -48 | 0) >>> 0 < 10) {
17576 5 : _luaL_error(i2, 7840, i4) | 0;
17577 5 : }
17578 5 : HEAP8[i5] = 37;
17579 5 : i16 = i19 - i16 | 0;
17580 5 : _memcpy(i14 | 0, i18 | 0, i16 + 1 | 0) | 0;
17581 5 : HEAP8[i5 + (i16 + 2) | 0] = 0;
17582 5 : i16 = i19 + 1 | 0;
17583 5 : i18 = HEAP8[i19] | 0;
17584 5 : L36 : do {
17585 5 : switch (i18 | 0) {
17586 5 : case 115:
17587 5 : {
17588 5 : i18 = _luaL_tolstring(i2, i15, i6) | 0;
17589 5 : if ((_strchr(i5, 46) | 0) == 0 ? (HEAP32[i6 >> 2] | 0) >>> 0 > 99 : 0) {
17590 5 : _luaL_addvalue(i10);
17591 5 : i17 = 0;
17592 5 : break L36;
17593 5 : }
17594 5 : HEAP32[i4 >> 2] = i18;
17595 5 : i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
17596 5 : _lua_settop(i2, -2);
17597 5 : break;
17598 5 : }
17599 5 : case 88:
17600 5 : case 120:
17601 5 : case 117:
17602 5 : case 111:
17603 5 : {
17604 5 : d21 = +_luaL_checknumber(i2, i15);
17605 5 : i18 = ~~d21 >>> 0;
17606 5 : d21 = d21 - +(i18 >>> 0);
17607 5 : if (!(d21 > -1.0 & d21 < 1.0)) {
17608 5 : _luaL_argerror(i2, i15, 7696) | 0;
17609 5 : }
17610 5 : i20 = _strlen(i5 | 0) | 0;
17611 5 : i22 = i5 + (i20 + -1) | 0;
17612 5 : i19 = HEAP8[i22] | 0;
17613 5 : HEAP8[i22] = 108;
17614 5 : HEAP8[i22 + 1 | 0] = 0;
17615 5 : HEAP8[i5 + i20 | 0] = i19;
17616 5 : HEAP8[i5 + (i20 + 1) | 0] = 0;
17617 5 : HEAP32[i4 >> 2] = i18;
17618 5 : i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
17619 5 : break;
17620 5 : }
17621 5 : case 99:
17622 5 : {
17623 5 : HEAP32[i4 >> 2] = _luaL_checkinteger(i2, i15) | 0;
17624 5 : i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
17625 5 : break;
17626 5 : }
17627 5 : case 113:
17628 5 : {
17629 5 : i17 = _luaL_checklstring(i2, i15, i7) | 0;
17630 5 : i18 = HEAP32[i1 >> 2] | 0;
17631 5 : if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17632 5 : _luaL_prepbuffsize(i10, 1) | 0;
17633 5 : i18 = HEAP32[i1 >> 2] | 0;
17634 5 : }
17635 5 : HEAP32[i1 >> 2] = i18 + 1;
17636 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 34;
17637 5 : i22 = HEAP32[i7 >> 2] | 0;
17638 5 : HEAP32[i7 >> 2] = i22 + -1;
17639 5 : if ((i22 | 0) != 0) {
17640 5 : while (1) {
17641 5 : i18 = HEAP8[i17] | 0;
17642 5 : do {
17643 5 : if (i18 << 24 >> 24 == 10 | i18 << 24 >> 24 == 92 | i18 << 24 >> 24 == 34) {
17644 5 : i18 = HEAP32[i1 >> 2] | 0;
17645 5 : if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17646 5 : _luaL_prepbuffsize(i10, 1) | 0;
17647 5 : i18 = HEAP32[i1 >> 2] | 0;
17648 5 : }
17649 5 : HEAP32[i1 >> 2] = i18 + 1;
17650 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = 92;
17651 5 : i18 = HEAP32[i1 >> 2] | 0;
17652 5 : if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17653 5 : _luaL_prepbuffsize(i10, 1) | 0;
17654 5 : i18 = HEAP32[i1 >> 2] | 0;
17655 5 : }
17656 5 : i22 = HEAP8[i17] | 0;
17657 5 : HEAP32[i1 >> 2] = i18 + 1;
17658 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
17659 5 : } else if (i18 << 24 >> 24 == 0) {
17660 5 : i18 = 0;
17661 5 : i11 = 44;
17662 5 : } else {
17663 5 : if ((_iscntrl(i18 & 255 | 0) | 0) != 0) {
17664 5 : i18 = HEAP8[i17] | 0;
17665 5 : i11 = 44;
17666 5 : break;
17667 5 : }
17668 5 : i18 = HEAP32[i1 >> 2] | 0;
17669 5 : if (!(i18 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17670 5 : _luaL_prepbuffsize(i10, 1) | 0;
17671 5 : i18 = HEAP32[i1 >> 2] | 0;
17672 5 : }
17673 5 : i22 = HEAP8[i17] | 0;
17674 5 : HEAP32[i1 >> 2] = i18 + 1;
17675 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i18 | 0] = i22;
17676 5 : }
17677 5 : } while (0);
17678 5 : if ((i11 | 0) == 44) {
17679 5 : i11 = 0;
17680 5 : i18 = i18 & 255;
17681 5 : if (((HEAPU8[i17 + 1 | 0] | 0) + -48 | 0) >>> 0 < 10) {
17682 5 : HEAP32[i4 >> 2] = i18;
17683 5 : _sprintf(i9 | 0, 7792, i4 | 0) | 0;
17684 5 : } else {
17685 5 : HEAP32[i4 >> 2] = i18;
17686 5 : _sprintf(i9 | 0, 7784, i4 | 0) | 0;
17687 5 : }
17688 5 : _luaL_addstring(i10, i9);
17689 5 : }
17690 5 : i22 = HEAP32[i7 >> 2] | 0;
17691 5 : HEAP32[i7 >> 2] = i22 + -1;
17692 5 : if ((i22 | 0) == 0) {
17693 5 : break;
17694 5 : } else {
17695 5 : i17 = i17 + 1 | 0;
17696 5 : }
17697 5 : }
17698 5 : }
17699 5 : i17 = HEAP32[i1 >> 2] | 0;
17700 5 : if (!(i17 >>> 0 < (HEAP32[i13 >> 2] | 0) >>> 0)) {
17701 5 : _luaL_prepbuffsize(i10, 1) | 0;
17702 5 : i17 = HEAP32[i1 >> 2] | 0;
17703 5 : }
17704 5 : HEAP32[i1 >> 2] = i17 + 1;
17705 5 : HEAP8[(HEAP32[i10 >> 2] | 0) + i17 | 0] = 34;
17706 5 : i17 = 0;
17707 5 : break;
17708 5 : }
17709 5 : case 71:
17710 5 : case 103:
17711 5 : case 102:
17712 5 : case 69:
17713 5 : case 101:
17714 5 : {
17715 5 : HEAP8[i5 + (_strlen(i5 | 0) | 0) | 0] = 0;
17716 5 : d21 = +_luaL_checknumber(i2, i15);
17717 5 : HEAPF64[tempDoublePtr >> 3] = d21;
17718 5 : HEAP32[i4 >> 2] = HEAP32[tempDoublePtr >> 2];
17719 5 : HEAP32[i4 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
17720 5 : i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
17721 5 : break;
17722 5 : }
17723 5 : case 105:
17724 5 : case 100:
17725 5 : {
17726 5 : d21 = +_luaL_checknumber(i2, i15);
17727 5 : i18 = ~~d21;
17728 5 : d21 = d21 - +(i18 | 0);
17729 5 : if (!(d21 > -1.0 & d21 < 1.0)) {
17730 5 : _luaL_argerror(i2, i15, 7664) | 0;
17731 5 : }
17732 5 : i22 = _strlen(i5 | 0) | 0;
17733 5 : i19 = i5 + (i22 + -1) | 0;
17734 5 : i20 = HEAP8[i19] | 0;
17735 5 : HEAP8[i19] = 108;
17736 5 : HEAP8[i19 + 1 | 0] = 0;
17737 5 : HEAP8[i5 + i22 | 0] = i20;
17738 5 : HEAP8[i5 + (i22 + 1) | 0] = 0;
17739 5 : HEAP32[i4 >> 2] = i18;
17740 5 : i17 = _sprintf(i17 | 0, i5 | 0, i4 | 0) | 0;
17741 5 : break;
17742 5 : }
17743 5 : default:
17744 5 : {
17745 5 : break L3;
17746 5 : }
17747 5 : }
17748 5 : } while (0);
17749 5 : HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + i17;
17750 5 : if (i16 >>> 0 < i3 >>> 0) {
17751 5 : i19 = i15;
17752 5 : } else {
17753 5 : break L1;
17754 5 : }
17755 5 : }
17756 5 : HEAP32[i4 >> 2] = i18;
17757 5 : i22 = _luaL_error(i2, 7744, i4) | 0;
17758 5 : STACKTOP = i12;
17759 5 : return i22 | 0;
17760 5 : }
17761 5 : } while (0);
17762 5 : _luaL_pushresult(i10);
17763 5 : i22 = 1;
17764 5 : STACKTOP = i12;
17765 5 : return i22 | 0;
17766 5 : }
17767 286015 : function _luaD_precall(i3, i17, i4) {
17768 286015 : i3 = i3 | 0;
17769 286015 : i17 = i17 | 0;
17770 286015 : i4 = i4 | 0;
17771 286015 : var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
17772 286015 : i1 = STACKTOP;
17773 286015 : STACKTOP = STACKTOP + 16 | 0;
17774 286015 : i8 = i1;
17775 286015 : i6 = i3 + 28 | 0;
17776 286015 : i2 = i3 + 8 | 0;
17777 286015 : i13 = i3 + 24 | 0;
17778 286015 : i14 = i3 + 32 | 0;
17779 286015 : while (1) {
17780 286015 : i15 = HEAP32[i6 >> 2] | 0;
17781 286015 : i16 = i17;
17782 286015 : i12 = i15;
17783 286015 : i5 = i16 - i12 | 0;
17784 286015 : i11 = HEAP32[i17 + 8 >> 2] & 63;
17785 286015 : if ((i11 | 0) == 38) {
17786 286015 : i11 = 4;
17787 286015 : break;
17788 286015 : } else if ((i11 | 0) == 22) {
17789 286015 : i11 = 3;
17790 286015 : break;
17791 286015 : } else if ((i11 | 0) == 6) {
17792 286015 : i11 = 31;
17793 286015 : break;
17794 286015 : }
17795 286015 : i11 = _luaT_gettmbyobj(i3, i17, 16) | 0;
17796 286015 : i15 = i16 - (HEAP32[i6 >> 2] | 0) | 0;
17797 286015 : i16 = i11 + 8 | 0;
17798 286015 : if ((HEAP32[i16 >> 2] & 15 | 0) != 6) {
17799 286015 : i11 = 54;
17800 286015 : break;
17801 286015 : }
17802 286015 : i19 = HEAP32[i2 >> 2] | 0;
17803 286015 : if (i19 >>> 0 > i17 >>> 0) {
17804 286015 : while (1) {
17805 286015 : i18 = i19 + -16 | 0;
17806 286015 : i22 = i18;
17807 286015 : i21 = HEAP32[i22 + 4 >> 2] | 0;
17808 286015 : i20 = i19;
17809 286015 : HEAP32[i20 >> 2] = HEAP32[i22 >> 2];
17810 286015 : HEAP32[i20 + 4 >> 2] = i21;
17811 286015 : HEAP32[i19 + 8 >> 2] = HEAP32[i19 + -8 >> 2];
17812 286015 : if (i18 >>> 0 > i17 >>> 0) {
17813 286015 : i19 = i18;
17814 286015 : } else {
17815 286015 : break;
17816 286015 : }
17817 286015 : }
17818 286015 : i19 = HEAP32[i2 >> 2] | 0;
17819 286015 : }
17820 286015 : i17 = i19 + 16 | 0;
17821 286015 : HEAP32[i2 >> 2] = i17;
17822 286015 : if (((HEAP32[i13 >> 2] | 0) - i17 | 0) < 16) {
17823 286015 : i18 = HEAP32[i14 >> 2] | 0;
17824 286015 : if ((i18 | 0) > 1e6) {
17825 286015 : i11 = 60;
17826 286015 : break;
17827 286015 : }
17828 286015 : i17 = (i17 - (HEAP32[i6 >> 2] | 0) >> 4) + 5 | 0;
17829 286015 : i18 = i18 << 1;
17830 286015 : i18 = (i18 | 0) > 1e6 ? 1e6 : i18;
17831 286015 : i17 = (i18 | 0) < (i17 | 0) ? i17 : i18;
17832 286015 : if ((i17 | 0) > 1e6) {
17833 286015 : i11 = 62;
17834 286015 : break;
17835 286015 : }
17836 286015 : _luaD_reallocstack(i3, i17);
17837 286015 : }
17838 286015 : i22 = HEAP32[i6 >> 2] | 0;
17839 286015 : i17 = i22 + i15 | 0;
17840 286015 : i19 = i11;
17841 286015 : i20 = HEAP32[i19 + 4 >> 2] | 0;
17842 286015 : i21 = i17;
17843 286015 : HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
17844 286015 : HEAP32[i21 + 4 >> 2] = i20;
17845 286015 : HEAP32[i22 + (i15 + 8) >> 2] = HEAP32[i16 >> 2];
17846 286015 : }
17847 286015 : if ((i11 | 0) == 3) {
17848 286015 : i10 = i17;
17849 286015 : } else if ((i11 | 0) == 4) {
17850 286015 : i10 = (HEAP32[i17 >> 2] | 0) + 12 | 0;
17851 286015 : } else if ((i11 | 0) == 31) {
17852 286015 : i10 = HEAP32[(HEAP32[i17 >> 2] | 0) + 12 >> 2] | 0;
17853 286015 : i18 = HEAP32[i2 >> 2] | 0;
17854 286015 : i16 = i18;
17855 286015 : i11 = i10 + 78 | 0;
17856 286015 : i17 = HEAPU8[i11] | 0;
17857 286015 : do {
17858 286015 : if (((HEAP32[i13 >> 2] | 0) - i16 >> 4 | 0) <= (i17 | 0)) {
17859 286015 : i13 = HEAP32[i14 >> 2] | 0;
17860 286015 : if ((i13 | 0) > 1e6) {
17861 286015 : _luaD_throw(i3, 6);
17862 286015 : }
17863 286015 : i12 = i17 + 5 + (i16 - i12 >> 4) | 0;
17864 286015 : i13 = i13 << 1;
17865 286015 : i13 = (i13 | 0) > 1e6 ? 1e6 : i13;
17866 286015 : i12 = (i13 | 0) < (i12 | 0) ? i12 : i13;
17867 286015 : if ((i12 | 0) > 1e6) {
17868 286015 : _luaD_reallocstack(i3, 1000200);
17869 286015 : _luaG_runerror(i3, 2224, i8);
17870 286015 : } else {
17871 286015 : _luaD_reallocstack(i3, i12);
17872 286015 : i7 = HEAP32[i6 >> 2] | 0;
17873 286015 : i9 = HEAP32[i2 >> 2] | 0;
17874 286015 : break;
17875 286015 : }
17876 286015 : } else {
17877 286015 : i7 = i15;
17878 286015 : i9 = i18;
17879 286015 : }
17880 286015 : } while (0);
17881 286015 : i6 = i7 + i5 | 0;
17882 286015 : i22 = i9 - i6 >> 4;
17883 286015 : i12 = i22 + -1 | 0;
17884 286015 : i8 = i10 + 76 | 0;
17885 286015 : i13 = HEAP8[i8] | 0;
17886 286015 : if ((i22 | 0) > (i13 & 255 | 0)) {
17887 286015 : i8 = i13;
17888 286015 : } else {
17889 286015 : i13 = i9;
17890 286015 : while (1) {
17891 286015 : i9 = i13 + 16 | 0;
17892 286015 : HEAP32[i2 >> 2] = i9;
17893 286015 : HEAP32[i13 + 8 >> 2] = 0;
17894 286015 : i12 = i12 + 1 | 0;
17895 286015 : i13 = HEAP8[i8] | 0;
17896 286015 : if ((i12 | 0) < (i13 & 255 | 0)) {
17897 286015 : i13 = i9;
17898 286015 : } else {
17899 286015 : i8 = i13;
17900 286015 : break;
17901 286015 : }
17902 286015 : }
17903 286015 : }
17904 286015 : if ((HEAP8[i10 + 77 | 0] | 0) != 0) {
17905 286015 : i5 = i8 & 255;
17906 286015 : if (!(i8 << 24 >> 24 == 0) ? (i22 = 0 - i12 | 0, HEAP32[i2 >> 2] = i9 + 16, i19 = i9 + (i22 << 4) | 0, i20 = HEAP32[i19 + 4 >> 2] | 0, i21 = i9, HEAP32[i21 >> 2] = HEAP32[i19 >> 2], HEAP32[i21 + 4 >> 2] = i20, i22 = i9 + (i22 << 4) + 8 | 0, HEAP32[i9 + 8 >> 2] = HEAP32[i22 >> 2], HEAP32[i22 >> 2] = 0, (i8 & 255) > 1) : 0) {
17907 286015 : i7 = 1;
17908 286015 : do {
17909 286015 : i21 = HEAP32[i2 >> 2] | 0;
17910 286015 : i22 = i7 - i12 | 0;
17911 286015 : HEAP32[i2 >> 2] = i21 + 16;
17912 286015 : i18 = i9 + (i22 << 4) | 0;
17913 286015 : i19 = HEAP32[i18 + 4 >> 2] | 0;
17914 286015 : i20 = i21;
17915 286015 : HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
17916 286015 : HEAP32[i20 + 4 >> 2] = i19;
17917 286015 : i22 = i9 + (i22 << 4) + 8 | 0;
17918 286015 : HEAP32[i21 + 8 >> 2] = HEAP32[i22 >> 2];
17919 286015 : HEAP32[i22 >> 2] = 0;
17920 286015 : i7 = i7 + 1 | 0;
17921 286015 : } while ((i7 | 0) < (i5 | 0));
17922 286015 : }
17923 286015 : } else {
17924 286015 : i9 = i7 + (i5 + 16) | 0;
17925 286015 : }
17926 286015 : i7 = i3 + 16 | 0;
17927 286015 : i5 = HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0;
17928 286015 : if ((i5 | 0) == 0) {
17929 286015 : i5 = _luaE_extendCI(i3) | 0;
17930 286015 : }
17931 286015 : HEAP32[i7 >> 2] = i5;
17932 286015 : HEAP16[i5 + 16 >> 1] = i4;
17933 286015 : HEAP32[i5 >> 2] = i6;
17934 286015 : HEAP32[i5 + 24 >> 2] = i9;
17935 286015 : i22 = i9 + (HEAPU8[i11] << 4) | 0;
17936 286015 : HEAP32[i5 + 4 >> 2] = i22;
17937 286015 : i4 = i5 + 28 | 0;
17938 286015 : HEAP32[i4 >> 2] = HEAP32[i10 + 12 >> 2];
17939 286015 : i6 = i5 + 18 | 0;
17940 286015 : HEAP8[i6] = 1;
17941 286015 : HEAP32[i2 >> 2] = i22;
17942 286015 : if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
17943 286015 : _luaC_step(i3);
17944 286015 : }
17945 286015 : if ((HEAP8[i3 + 40 | 0] & 1) == 0) {
17946 286015 : i22 = 0;
17947 286015 : STACKTOP = i1;
17948 286015 : return i22 | 0;
17949 286015 : }
17950 286015 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 4;
17951 286015 : i2 = HEAP32[i5 + 8 >> 2] | 0;
17952 286015 : if (!((HEAP8[i2 + 18 | 0] & 1) == 0) ? (HEAP32[(HEAP32[i2 + 28 >> 2] | 0) + -4 >> 2] & 63 | 0) == 30 : 0) {
17953 286015 : HEAP8[i6] = HEAPU8[i6] | 64;
17954 286015 : i2 = 4;
17955 286015 : } else {
17956 286015 : i2 = 0;
17957 286015 : }
17958 286015 : _luaD_hook(i3, i2, -1);
17959 286015 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -4;
17960 286015 : i22 = 0;
17961 286015 : STACKTOP = i1;
17962 286015 : return i22 | 0;
17963 286015 : } else if ((i11 | 0) == 54) {
17964 286015 : _luaG_typeerror(i3, i17, 2520);
17965 286015 : } else if ((i11 | 0) == 60) {
17966 286015 : _luaD_throw(i3, 6);
17967 286015 : } else if ((i11 | 0) == 62) {
17968 286015 : _luaD_reallocstack(i3, 1000200);
17969 286015 : _luaG_runerror(i3, 2224, i8);
17970 286015 : }
17971 286015 : i7 = HEAP32[i10 >> 2] | 0;
17972 286015 : i9 = HEAP32[i2 >> 2] | 0;
17973 286015 : do {
17974 286015 : if (((HEAP32[i13 >> 2] | 0) - i9 | 0) < 336) {
17975 286015 : i10 = HEAP32[i14 >> 2] | 0;
17976 286015 : if ((i10 | 0) > 1e6) {
17977 286015 : _luaD_throw(i3, 6);
17978 286015 : }
17979 286015 : i9 = (i9 - i12 >> 4) + 25 | 0;
17980 286015 : i10 = i10 << 1;
17981 286015 : i10 = (i10 | 0) > 1e6 ? 1e6 : i10;
17982 286015 : i9 = (i10 | 0) < (i9 | 0) ? i9 : i10;
17983 286015 : if ((i9 | 0) > 1e6) {
17984 286015 : _luaD_reallocstack(i3, 1000200);
17985 286015 : _luaG_runerror(i3, 2224, i8);
17986 286015 : } else {
17987 286015 : _luaD_reallocstack(i3, i9);
17988 286015 : break;
17989 286015 : }
17990 286015 : }
17991 286015 : } while (0);
17992 286015 : i8 = i3 + 16 | 0;
17993 286015 : i9 = HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0;
17994 286015 : if ((i9 | 0) == 0) {
17995 286015 : i9 = _luaE_extendCI(i3) | 0;
17996 286015 : }
17997 286015 : HEAP32[i8 >> 2] = i9;
17998 286015 : HEAP16[i9 + 16 >> 1] = i4;
17999 286015 : HEAP32[i9 >> 2] = (HEAP32[i6 >> 2] | 0) + i5;
18000 286015 : HEAP32[i9 + 4 >> 2] = (HEAP32[i2 >> 2] | 0) + 320;
18001 286015 : HEAP8[i9 + 18 | 0] = 0;
18002 286015 : if ((HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
18003 286015 : _luaC_step(i3);
18004 286015 : }
18005 286015 : i5 = i3 + 40 | 0;
18006 286015 : if (!((HEAP8[i5] & 1) == 0)) {
18007 286015 : _luaD_hook(i3, 0, -1);
18008 286015 : }
18009 286015 : i7 = FUNCTION_TABLE_ii[i7 & 255](i3) | 0;
18010 286015 : i7 = (HEAP32[i2 >> 2] | 0) + (0 - i7 << 4) | 0;
18011 286015 : i4 = HEAP32[i8 >> 2] | 0;
18012 286015 : i5 = HEAPU8[i5] | 0;
18013 286015 : if ((i5 & 6 | 0) == 0) {
18014 286015 : i5 = i7;
18015 286015 : i6 = i4 + 8 | 0;
18016 286015 : } else {
18017 286015 : if ((i5 & 2 | 0) == 0) {
18018 286015 : i5 = i7;
18019 286015 : } else {
18020 286015 : i5 = i7 - (HEAP32[i6 >> 2] | 0) | 0;
18021 286015 : _luaD_hook(i3, 1, -1);
18022 286015 : i5 = (HEAP32[i6 >> 2] | 0) + i5 | 0;
18023 286015 : }
18024 286015 : i6 = i4 + 8 | 0;
18025 286015 : HEAP32[i3 + 20 >> 2] = HEAP32[(HEAP32[i6 >> 2] | 0) + 28 >> 2];
18026 286015 : }
18027 286015 : i3 = HEAP32[i4 >> 2] | 0;
18028 286015 : i4 = HEAP16[i4 + 16 >> 1] | 0;
18029 286015 : HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
18030 286015 : L82 : do {
18031 286015 : if (!(i4 << 16 >> 16 == 0)) {
18032 286015 : i4 = i4 << 16 >> 16;
18033 286015 : while (1) {
18034 286015 : if (!(i5 >>> 0 < (HEAP32[i2 >> 2] | 0) >>> 0)) {
18035 286015 : break;
18036 286015 : }
18037 286015 : i6 = i3 + 16 | 0;
18038 286015 : i20 = i5;
18039 286015 : i21 = HEAP32[i20 + 4 >> 2] | 0;
18040 286015 : i22 = i3;
18041 286015 : HEAP32[i22 >> 2] = HEAP32[i20 >> 2];
18042 286015 : HEAP32[i22 + 4 >> 2] = i21;
18043 286015 : HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
18044 286015 : i4 = i4 + -1 | 0;
18045 286015 : if ((i4 | 0) == 0) {
18046 286015 : i3 = i6;
18047 286015 : break L82;
18048 286015 : }
18049 286015 : i5 = i5 + 16 | 0;
18050 286015 : i3 = i6;
18051 286015 : }
18052 286015 : if ((i4 | 0) > 0) {
18053 286015 : i5 = i4;
18054 286015 : i6 = i3;
18055 286015 : while (1) {
18056 286015 : i5 = i5 + -1 | 0;
18057 286015 : HEAP32[i6 + 8 >> 2] = 0;
18058 286015 : if ((i5 | 0) <= 0) {
18059 286015 : break;
18060 286015 : } else {
18061 286015 : i6 = i6 + 16 | 0;
18062 286015 : }
18063 286015 : }
18064 286015 : i3 = i3 + (i4 << 4) | 0;
18065 286015 : }
18066 286015 : }
18067 286015 : } while (0);
18068 286015 : HEAP32[i2 >> 2] = i3;
18069 286015 : i22 = 1;
18070 286015 : STACKTOP = i1;
18071 286015 : return i22 | 0;
18072 286015 : }
18073 1 : function _lua_getinfo(i1, i6, i29) {
18074 0 : i1 = i1 | 0;
18075 0 : i6 = i6 | 0;
18076 0 : i29 = i29 | 0;
18077 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0, i30 = 0, i31 = 0, i32 = 0, i33 = 0, i34 = 0, i35 = 0, i36 = 0;
18078 0 : i3 = STACKTOP;
18079 0 : STACKTOP = STACKTOP + 16 | 0;
18080 0 : i2 = i3;
18081 0 : if ((HEAP8[i6] | 0) == 62) {
18082 0 : i10 = i1 + 8 | 0;
18083 0 : i7 = (HEAP32[i10 >> 2] | 0) + -16 | 0;
18084 0 : HEAP32[i10 >> 2] = i7;
18085 0 : i6 = i6 + 1 | 0;
18086 0 : i10 = 0;
18087 0 : } else {
18088 0 : i7 = HEAP32[i29 + 96 >> 2] | 0;
18089 0 : i10 = i7;
18090 0 : i7 = HEAP32[i7 >> 2] | 0;
18091 0 : }
18092 0 : i8 = i7 + 8 | 0;
18093 0 : if ((HEAP32[i8 >> 2] & 31 | 0) == 6) {
18094 0 : i9 = HEAP32[i7 >> 2] | 0;
18095 0 : } else {
18096 0 : i9 = 0;
18097 0 : }
18098 0 : i34 = HEAP8[i6] | 0;
18099 0 : L8 : do {
18100 0 : if (i34 << 24 >> 24 == 0) {
18101 0 : i33 = 1;
18102 0 : } else {
18103 0 : i12 = (i9 | 0) == 0;
18104 0 : i27 = i29 + 16 | 0;
18105 0 : i28 = i29 + 24 | 0;
18106 0 : i21 = i29 + 28 | 0;
18107 0 : i25 = i29 + 12 | 0;
18108 0 : i26 = i29 + 36 | 0;
18109 0 : i19 = i9 + 4 | 0;
18110 0 : i24 = i9 + 12 | 0;
18111 0 : i18 = (i10 | 0) == 0;
18112 0 : i23 = i29 + 20 | 0;
18113 0 : i17 = i10 + 18 | 0;
18114 0 : i22 = i10 + 28 | 0;
18115 0 : i15 = i29 + 32 | 0;
18116 0 : i14 = i29 + 34 | 0;
18117 0 : i13 = i29 + 33 | 0;
18118 0 : i11 = i9 + 6 | 0;
18119 0 : i16 = i29 + 35 | 0;
18120 0 : i20 = i29 + 8 | 0;
18121 0 : i30 = i29 + 4 | 0;
18122 0 : i29 = i10 + 8 | 0;
18123 0 : i31 = i1 + 12 | 0;
18124 0 : i32 = i6;
18125 0 : i33 = 1;
18126 0 : while (1) {
18127 0 : L12 : do {
18128 0 : switch (i34 << 24 >> 24 | 0) {
18129 0 : case 116:
18130 0 : {
18131 0 : if (i18) {
18132 0 : i34 = 0;
18133 0 : } else {
18134 0 : i34 = HEAPU8[i17] & 64;
18135 0 : }
18136 0 : HEAP8[i16] = i34;
18137 0 : break;
18138 0 : }
18139 0 : case 110:
18140 0 : {
18141 0 : L18 : do {
18142 0 : if ((!i18 ? (HEAP8[i17] & 64) == 0 : 0) ? (i5 = HEAP32[i29 >> 2] | 0, !((HEAP8[i5 + 18 | 0] & 1) == 0)) : 0) {
18143 0 : i36 = HEAP32[(HEAP32[HEAP32[i5 >> 2] >> 2] | 0) + 12 >> 2] | 0;
18144 0 : i35 = HEAP32[i36 + 12 >> 2] | 0;
18145 0 : i34 = ((HEAP32[i5 + 28 >> 2] | 0) - i35 >> 2) + -1 | 0;
18146 0 : i35 = HEAP32[i35 + (i34 << 2) >> 2] | 0;
18147 0 : switch (i35 & 63 | 0) {
18148 0 : case 10:
18149 0 : case 8:
18150 0 : {
18151 0 : i34 = 1;
18152 0 : i4 = 46;
18153 0 : break;
18154 0 : }
18155 0 : case 24:
18156 0 : {
18157 0 : i34 = 5;
18158 0 : i4 = 46;
18159 0 : break;
18160 0 : }
18161 0 : case 13:
18162 0 : {
18163 0 : i34 = 6;
18164 0 : i4 = 46;
18165 0 : break;
18166 0 : }
18167 0 : case 14:
18168 0 : {
18169 0 : i34 = 7;
18170 0 : i4 = 46;
18171 0 : break;
18172 0 : }
18173 0 : case 15:
18174 0 : {
18175 0 : i34 = 8;
18176 0 : i4 = 46;
18177 0 : break;
18178 0 : }
18179 0 : case 16:
18180 0 : {
18181 0 : i34 = 9;
18182 0 : i4 = 46;
18183 0 : break;
18184 0 : }
18185 0 : case 17:
18186 0 : {
18187 0 : i34 = 10;
18188 0 : i4 = 46;
18189 0 : break;
18190 0 : }
18191 0 : case 18:
18192 0 : {
18193 0 : i34 = 11;
18194 0 : i4 = 46;
18195 0 : break;
18196 0 : }
18197 0 : case 19:
18198 0 : {
18199 0 : i34 = 12;
18200 0 : i4 = 46;
18201 0 : break;
18202 0 : }
18203 0 : case 21:
18204 0 : {
18205 0 : i34 = 4;
18206 0 : i4 = 46;
18207 0 : break;
18208 0 : }
18209 0 : case 25:
18210 0 : {
18211 0 : i34 = 13;
18212 0 : i4 = 46;
18213 0 : break;
18214 0 : }
18215 0 : case 26:
18216 0 : {
18217 0 : i34 = 14;
18218 0 : i4 = 46;
18219 0 : break;
18220 0 : }
18221 0 : case 22:
18222 0 : {
18223 0 : i34 = 15;
18224 0 : i4 = 46;
18225 0 : break;
18226 0 : }
18227 0 : case 7:
18228 0 : case 6:
18229 0 : case 12:
18230 0 : {
18231 0 : i34 = 0;
18232 0 : i4 = 46;
18233 0 : break;
18234 0 : }
18235 0 : case 34:
18236 0 : {
18237 0 : i34 = 2120;
18238 0 : i35 = 2120;
18239 0 : break;
18240 0 : }
18241 0 : case 30:
18242 0 : case 29:
18243 0 : {
18244 0 : i36 = _getobjname(i36, i34, i35 >>> 6 & 255, i30) | 0;
18245 0 : HEAP32[i20 >> 2] = i36;
18246 0 : if ((i36 | 0) == 0) {
18247 0 : break L18;
18248 0 : } else {
18249 0 : break L12;
18250 0 : }
18251 0 : }
18252 0 : default:
18253 0 : {
18254 0 : i4 = 47;
18255 0 : break L18;
18256 0 : }
18257 0 : }
18258 0 : if ((i4 | 0) == 46) {
18259 0 : i4 = 0;
18260 0 : i34 = (HEAP32[(HEAP32[i31 >> 2] | 0) + (i34 << 2) + 184 >> 2] | 0) + 16 | 0;
18261 0 : i35 = 2136;
18262 0 : }
18263 0 : HEAP32[i30 >> 2] = i34;
18264 0 : HEAP32[i20 >> 2] = i35;
18265 0 : break L12;
18266 0 : } else {
18267 0 : i4 = 47;
18268 0 : }
18269 0 : } while (0);
18270 0 : if ((i4 | 0) == 47) {
18271 0 : i4 = 0;
18272 0 : HEAP32[i20 >> 2] = 0;
18273 0 : }
18274 0 : HEAP32[i20 >> 2] = 2112;
18275 0 : HEAP32[i30 >> 2] = 0;
18276 0 : break;
18277 0 : }
18278 0 : case 108:
18279 0 : {
18280 0 : if (!i18 ? !((HEAP8[i17] & 1) == 0) : 0) {
18281 0 : i35 = HEAP32[(HEAP32[HEAP32[i10 >> 2] >> 2] | 0) + 12 >> 2] | 0;
18282 0 : i34 = HEAP32[i35 + 20 >> 2] | 0;
18283 0 : if ((i34 | 0) == 0) {
18284 0 : i34 = 0;
18285 0 : } else {
18286 0 : i34 = HEAP32[i34 + (((HEAP32[i22 >> 2] | 0) - (HEAP32[i35 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
18287 0 : }
18288 0 : } else {
18289 0 : i34 = -1;
18290 0 : }
18291 0 : HEAP32[i23 >> 2] = i34;
18292 0 : break;
18293 0 : }
18294 0 : case 83:
18295 0 : {
18296 0 : if (!i12 ? (HEAP8[i19] | 0) != 38 : 0) {
18297 0 : i34 = HEAP32[i24 >> 2] | 0;
18298 0 : i35 = HEAP32[i34 + 36 >> 2] | 0;
18299 0 : if ((i35 | 0) == 0) {
18300 0 : i35 = 2168;
18301 0 : } else {
18302 0 : i35 = i35 + 16 | 0;
18303 0 : }
18304 0 : HEAP32[i27 >> 2] = i35;
18305 0 : i36 = HEAP32[i34 + 64 >> 2] | 0;
18306 0 : HEAP32[i28 >> 2] = i36;
18307 0 : HEAP32[i21 >> 2] = HEAP32[i34 + 68 >> 2];
18308 0 : i34 = (i36 | 0) == 0 ? 2176 : 2184;
18309 0 : } else {
18310 0 : HEAP32[i27 >> 2] = 2152;
18311 0 : HEAP32[i28 >> 2] = -1;
18312 0 : HEAP32[i21 >> 2] = -1;
18313 0 : i35 = 2152;
18314 0 : i34 = 2160;
18315 0 : }
18316 0 : HEAP32[i25 >> 2] = i34;
18317 0 : _luaO_chunkid(i26, i35, 60);
18318 0 : break;
18319 0 : }
18320 0 : case 117:
18321 0 : {
18322 0 : if (!i12) {
18323 0 : HEAP8[i15] = HEAP8[i11] | 0;
18324 0 : if ((HEAP8[i19] | 0) != 38) {
18325 0 : HEAP8[i14] = HEAP8[(HEAP32[i24 >> 2] | 0) + 77 | 0] | 0;
18326 0 : HEAP8[i13] = HEAP8[(HEAP32[i24 >> 2] | 0) + 76 | 0] | 0;
18327 0 : break L12;
18328 0 : }
18329 0 : } else {
18330 0 : HEAP8[i15] = 0;
18331 0 : }
18332 0 : HEAP8[i14] = 1;
18333 0 : HEAP8[i13] = 0;
18334 0 : break;
18335 0 : }
18336 0 : case 102:
18337 0 : case 76:
18338 0 : {
18339 0 : break;
18340 0 : }
18341 0 : default:
18342 0 : {
18343 0 : i33 = 0;
18344 0 : }
18345 0 : }
18346 0 : } while (0);
18347 0 : i32 = i32 + 1 | 0;
18348 0 : i34 = HEAP8[i32] | 0;
18349 0 : if (i34 << 24 >> 24 == 0) {
18350 0 : break L8;
18351 0 : }
18352 0 : }
18353 0 : }
18354 0 : } while (0);
18355 0 : if ((_strchr(i6, 102) | 0) != 0) {
18356 0 : i36 = i1 + 8 | 0;
18357 0 : i35 = HEAP32[i36 >> 2] | 0;
18358 0 : i31 = i7;
18359 0 : i32 = HEAP32[i31 + 4 >> 2] | 0;
18360 0 : i34 = i35;
18361 0 : HEAP32[i34 >> 2] = HEAP32[i31 >> 2];
18362 0 : HEAP32[i34 + 4 >> 2] = i32;
18363 0 : HEAP32[i35 + 8 >> 2] = HEAP32[i8 >> 2];
18364 0 : HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
18365 0 : }
18366 0 : if ((_strchr(i6, 76) | 0) == 0) {
18367 0 : STACKTOP = i3;
18368 0 : return i33 | 0;
18369 0 : }
18370 0 : if ((i9 | 0) != 0 ? (HEAP8[i9 + 4 | 0] | 0) != 38 : 0) {
18371 0 : i6 = i9 + 12 | 0;
18372 0 : i5 = HEAP32[(HEAP32[i6 >> 2] | 0) + 20 >> 2] | 0;
18373 0 : i4 = _luaH_new(i1) | 0;
18374 0 : i36 = i1 + 8 | 0;
18375 0 : i35 = HEAP32[i36 >> 2] | 0;
18376 0 : HEAP32[i35 >> 2] = i4;
18377 0 : HEAP32[i35 + 8 >> 2] = 69;
18378 0 : HEAP32[i36 >> 2] = (HEAP32[i36 >> 2] | 0) + 16;
18379 0 : HEAP32[i2 >> 2] = 1;
18380 0 : HEAP32[i2 + 8 >> 2] = 1;
18381 0 : if ((HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0) > 0) {
18382 0 : i7 = 0;
18383 0 : } else {
18384 0 : STACKTOP = i3;
18385 0 : return i33 | 0;
18386 0 : }
18387 0 : do {
18388 0 : _luaH_setint(i1, i4, HEAP32[i5 + (i7 << 2) >> 2] | 0, i2);
18389 0 : i7 = i7 + 1 | 0;
18390 0 : } while ((i7 | 0) < (HEAP32[(HEAP32[i6 >> 2] | 0) + 52 >> 2] | 0));
18391 0 : STACKTOP = i3;
18392 0 : return i33 | 0;
18393 0 : }
18394 0 : i36 = i1 + 8 | 0;
18395 0 : i35 = HEAP32[i36 >> 2] | 0;
18396 0 : HEAP32[i35 + 8 >> 2] = 0;
18397 0 : HEAP32[i36 >> 2] = i35 + 16;
18398 0 : STACKTOP = i3;
18399 0 : return i33 | 0;
18400 1 : }
18401 1 : function _read_long_string(i3, i1, i5) {
18402 0 : i3 = i3 | 0;
18403 0 : i1 = i1 | 0;
18404 0 : i5 = i5 | 0;
18405 0 : var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
18406 0 : i2 = STACKTOP;
18407 0 : i14 = HEAP32[i3 >> 2] | 0;
18408 0 : i4 = i3 + 60 | 0;
18409 0 : i13 = HEAP32[i4 >> 2] | 0;
18410 0 : i15 = i13 + 4 | 0;
18411 0 : i16 = HEAP32[i15 >> 2] | 0;
18412 0 : i10 = i13 + 8 | 0;
18413 0 : i12 = HEAP32[i10 >> 2] | 0;
18414 0 : do {
18415 0 : if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
18416 0 : if (i12 >>> 0 > 2147483645) {
18417 0 : _lexerror(i3, 12368, 0);
18418 0 : }
18419 0 : i16 = i12 << 1;
18420 0 : i17 = HEAP32[i3 + 52 >> 2] | 0;
18421 0 : if ((i16 | 0) == -2) {
18422 0 : _luaM_toobig(i17);
18423 0 : } else {
18424 0 : i8 = _luaM_realloc_(i17, HEAP32[i13 >> 2] | 0, i12, i16) | 0;
18425 0 : HEAP32[i13 >> 2] = i8;
18426 0 : HEAP32[i10 >> 2] = i16;
18427 0 : i9 = HEAP32[i15 >> 2] | 0;
18428 0 : break;
18429 0 : }
18430 0 : } else {
18431 0 : i9 = i16;
18432 0 : i8 = HEAP32[i13 >> 2] | 0;
18433 0 : }
18434 0 : } while (0);
18435 0 : HEAP32[i15 >> 2] = i9 + 1;
18436 0 : HEAP8[i8 + i9 | 0] = i14;
18437 0 : i9 = i3 + 56 | 0;
18438 0 : i8 = HEAP32[i9 >> 2] | 0;
18439 0 : i18 = HEAP32[i8 >> 2] | 0;
18440 0 : HEAP32[i8 >> 2] = i18 + -1;
18441 0 : if ((i18 | 0) == 0) {
18442 0 : i12 = _luaZ_fill(i8) | 0;
18443 0 : } else {
18444 0 : i18 = i8 + 4 | 0;
18445 0 : i12 = HEAP32[i18 >> 2] | 0;
18446 0 : HEAP32[i18 >> 2] = i12 + 1;
18447 0 : i12 = HEAPU8[i12] | 0;
18448 0 : }
18449 0 : HEAP32[i3 >> 2] = i12;
18450 0 : if ((i12 | 0) == 13 | (i12 | 0) == 10) {
18451 0 : _inclinenumber(i3);
18452 0 : i11 = 13;
18453 0 : }
18454 0 : L17 : while (1) {
18455 0 : if ((i11 | 0) == 13) {
18456 0 : i11 = 0;
18457 0 : i12 = HEAP32[i3 >> 2] | 0;
18458 0 : }
18459 0 : i8 = (i1 | 0) == 0;
18460 0 : i10 = i3 + 52 | 0;
18461 0 : L21 : do {
18462 0 : if (i8) {
18463 0 : while (1) {
18464 0 : if ((i12 | 0) == 13 | (i12 | 0) == 10) {
18465 0 : break L21;
18466 0 : } else if ((i12 | 0) == 93) {
18467 0 : i11 = 22;
18468 0 : break L21;
18469 0 : } else if ((i12 | 0) == -1) {
18470 0 : i11 = 21;
18471 0 : break L17;
18472 0 : }
18473 0 : i12 = HEAP32[i9 >> 2] | 0;
18474 0 : i18 = HEAP32[i12 >> 2] | 0;
18475 0 : HEAP32[i12 >> 2] = i18 + -1;
18476 0 : if ((i18 | 0) == 0) {
18477 0 : i12 = _luaZ_fill(i12) | 0;
18478 0 : } else {
18479 0 : i18 = i12 + 4 | 0;
18480 0 : i12 = HEAP32[i18 >> 2] | 0;
18481 0 : HEAP32[i18 >> 2] = i12 + 1;
18482 0 : i12 = HEAPU8[i12] | 0;
18483 0 : }
18484 0 : HEAP32[i3 >> 2] = i12;
18485 0 : }
18486 0 : } else {
18487 0 : while (1) {
18488 0 : if ((i12 | 0) == 13 | (i12 | 0) == 10) {
18489 0 : break L21;
18490 0 : } else if ((i12 | 0) == 93) {
18491 0 : i11 = 22;
18492 0 : break L21;
18493 0 : } else if ((i12 | 0) == -1) {
18494 0 : i11 = 21;
18495 0 : break L17;
18496 0 : }
18497 0 : i14 = HEAP32[i4 >> 2] | 0;
18498 0 : i13 = i14 + 4 | 0;
18499 0 : i17 = HEAP32[i13 >> 2] | 0;
18500 0 : i16 = i14 + 8 | 0;
18501 0 : i15 = HEAP32[i16 >> 2] | 0;
18502 0 : if ((i17 + 1 | 0) >>> 0 > i15 >>> 0) {
18503 0 : if (i15 >>> 0 > 2147483645) {
18504 0 : i11 = 46;
18505 0 : break L17;
18506 0 : }
18507 0 : i17 = i15 << 1;
18508 0 : i18 = HEAP32[i10 >> 2] | 0;
18509 0 : if ((i17 | 0) == -2) {
18510 0 : i11 = 48;
18511 0 : break L17;
18512 0 : }
18513 0 : i18 = _luaM_realloc_(i18, HEAP32[i14 >> 2] | 0, i15, i17) | 0;
18514 0 : HEAP32[i14 >> 2] = i18;
18515 0 : HEAP32[i16 >> 2] = i17;
18516 0 : i17 = HEAP32[i13 >> 2] | 0;
18517 0 : i14 = i18;
18518 0 : } else {
18519 0 : i14 = HEAP32[i14 >> 2] | 0;
18520 0 : }
18521 0 : HEAP32[i13 >> 2] = i17 + 1;
18522 0 : HEAP8[i14 + i17 | 0] = i12;
18523 0 : i12 = HEAP32[i9 >> 2] | 0;
18524 0 : i18 = HEAP32[i12 >> 2] | 0;
18525 0 : HEAP32[i12 >> 2] = i18 + -1;
18526 0 : if ((i18 | 0) == 0) {
18527 0 : i12 = _luaZ_fill(i12) | 0;
18528 0 : } else {
18529 0 : i18 = i12 + 4 | 0;
18530 0 : i12 = HEAP32[i18 >> 2] | 0;
18531 0 : HEAP32[i18 >> 2] = i12 + 1;
18532 0 : i12 = HEAPU8[i12] | 0;
18533 0 : }
18534 0 : HEAP32[i3 >> 2] = i12;
18535 0 : }
18536 0 : }
18537 0 : } while (0);
18538 0 : if ((i11 | 0) == 22) {
18539 0 : if ((_skip_sep(i3) | 0) == (i5 | 0)) {
18540 0 : i11 = 23;
18541 0 : break;
18542 0 : } else {
18543 0 : i11 = 13;
18544 0 : continue;
18545 0 : }
18546 0 : }
18547 0 : i12 = HEAP32[i4 >> 2] | 0;
18548 0 : i11 = i12 + 4 | 0;
18549 0 : i15 = HEAP32[i11 >> 2] | 0;
18550 0 : i14 = i12 + 8 | 0;
18551 0 : i13 = HEAP32[i14 >> 2] | 0;
18552 0 : if ((i15 + 1 | 0) >>> 0 > i13 >>> 0) {
18553 0 : if (i13 >>> 0 > 2147483645) {
18554 0 : i11 = 37;
18555 0 : break;
18556 0 : }
18557 0 : i15 = i13 << 1;
18558 0 : i10 = HEAP32[i10 >> 2] | 0;
18559 0 : if ((i15 | 0) == -2) {
18560 0 : i11 = 39;
18561 0 : break;
18562 0 : }
18563 0 : i10 = _luaM_realloc_(i10, HEAP32[i12 >> 2] | 0, i13, i15) | 0;
18564 0 : HEAP32[i12 >> 2] = i10;
18565 0 : HEAP32[i14 >> 2] = i15;
18566 0 : i15 = HEAP32[i11 >> 2] | 0;
18567 0 : } else {
18568 0 : i10 = HEAP32[i12 >> 2] | 0;
18569 0 : }
18570 0 : HEAP32[i11 >> 2] = i15 + 1;
18571 0 : HEAP8[i10 + i15 | 0] = 10;
18572 0 : _inclinenumber(i3);
18573 0 : if (!i8) {
18574 0 : i11 = 13;
18575 0 : continue;
18576 0 : }
18577 0 : HEAP32[(HEAP32[i4 >> 2] | 0) + 4 >> 2] = 0;
18578 0 : i11 = 13;
18579 0 : }
18580 0 : if ((i11 | 0) == 21) {
18581 0 : _lexerror(i3, (i1 | 0) != 0 ? 12512 : 12536, 286);
18582 0 : } else if ((i11 | 0) == 23) {
18583 0 : i15 = HEAP32[i3 >> 2] | 0;
18584 0 : i13 = HEAP32[i4 >> 2] | 0;
18585 0 : i14 = i13 + 4 | 0;
18586 0 : i16 = HEAP32[i14 >> 2] | 0;
18587 0 : i11 = i13 + 8 | 0;
18588 0 : i12 = HEAP32[i11 >> 2] | 0;
18589 0 : do {
18590 0 : if ((i16 + 1 | 0) >>> 0 > i12 >>> 0) {
18591 0 : if (i12 >>> 0 > 2147483645) {
18592 0 : _lexerror(i3, 12368, 0);
18593 0 : }
18594 0 : i17 = i12 << 1;
18595 0 : i16 = HEAP32[i10 >> 2] | 0;
18596 0 : if ((i17 | 0) == -2) {
18597 0 : _luaM_toobig(i16);
18598 0 : } else {
18599 0 : i6 = _luaM_realloc_(i16, HEAP32[i13 >> 2] | 0, i12, i17) | 0;
18600 0 : HEAP32[i13 >> 2] = i6;
18601 0 : HEAP32[i11 >> 2] = i17;
18602 0 : i7 = HEAP32[i14 >> 2] | 0;
18603 0 : break;
18604 0 : }
18605 0 : } else {
18606 0 : i7 = i16;
18607 0 : i6 = HEAP32[i13 >> 2] | 0;
18608 0 : }
18609 0 : } while (0);
18610 0 : HEAP32[i14 >> 2] = i7 + 1;
18611 0 : HEAP8[i6 + i7 | 0] = i15;
18612 0 : i6 = HEAP32[i9 >> 2] | 0;
18613 0 : i18 = HEAP32[i6 >> 2] | 0;
18614 0 : HEAP32[i6 >> 2] = i18 + -1;
18615 0 : if ((i18 | 0) == 0) {
18616 0 : i6 = _luaZ_fill(i6) | 0;
18617 0 : } else {
18618 0 : i18 = i6 + 4 | 0;
18619 0 : i6 = HEAP32[i18 >> 2] | 0;
18620 0 : HEAP32[i18 >> 2] = i6 + 1;
18621 0 : i6 = HEAPU8[i6] | 0;
18622 0 : }
18623 0 : HEAP32[i3 >> 2] = i6;
18624 0 : if (i8) {
18625 0 : STACKTOP = i2;
18626 0 : return;
18627 0 : }
18628 0 : i4 = HEAP32[i4 >> 2] | 0;
18629 0 : i5 = i5 + 2 | 0;
18630 0 : i6 = HEAP32[i10 >> 2] | 0;
18631 0 : i5 = _luaS_newlstr(i6, (HEAP32[i4 >> 2] | 0) + i5 | 0, (HEAP32[i4 + 4 >> 2] | 0) - (i5 << 1) | 0) | 0;
18632 0 : i4 = i6 + 8 | 0;
18633 0 : i7 = HEAP32[i4 >> 2] | 0;
18634 0 : HEAP32[i4 >> 2] = i7 + 16;
18635 0 : HEAP32[i7 >> 2] = i5;
18636 0 : HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
18637 0 : i7 = _luaH_set(i6, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
18638 0 : i3 = i7 + 8 | 0;
18639 0 : if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i7 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
18640 0 : _luaC_step(i6);
18641 0 : }
18642 0 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
18643 0 : HEAP32[i1 >> 2] = i5;
18644 0 : STACKTOP = i2;
18645 0 : return;
18646 0 : } else if ((i11 | 0) == 37) {
18647 0 : _lexerror(i3, 12368, 0);
18648 0 : } else if ((i11 | 0) == 39) {
18649 0 : _luaM_toobig(i10);
18650 0 : } else if ((i11 | 0) == 46) {
18651 0 : _lexerror(i3, 12368, 0);
18652 0 : } else if ((i11 | 0) == 48) {
18653 0 : _luaM_toobig(i18);
18654 0 : }
18655 1 : }
18656 81 : function _try_realloc_chunk(i1, i3) {
18657 81 : i1 = i1 | 0;
18658 81 : i3 = i3 | 0;
18659 81 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
18660 81 : i2 = STACKTOP;
18661 81 : i4 = i1 + 4 | 0;
18662 81 : i6 = HEAP32[i4 >> 2] | 0;
18663 81 : i8 = i6 & -8;
18664 81 : i5 = i1 + i8 | 0;
18665 81 : i10 = HEAP32[12928 >> 2] | 0;
18666 81 : if (i1 >>> 0 < i10 >>> 0) {
18667 81 : _abort();
18668 81 : }
18669 81 : i12 = i6 & 3;
18670 81 : if (!((i12 | 0) != 1 & i1 >>> 0 < i5 >>> 0)) {
18671 81 : _abort();
18672 81 : }
18673 81 : i7 = i1 + (i8 | 4) | 0;
18674 81 : i13 = HEAP32[i7 >> 2] | 0;
18675 81 : if ((i13 & 1 | 0) == 0) {
18676 81 : _abort();
18677 81 : }
18678 81 : if ((i12 | 0) == 0) {
18679 81 : if (i3 >>> 0 < 256) {
18680 81 : i15 = 0;
18681 81 : STACKTOP = i2;
18682 81 : return i15 | 0;
18683 81 : }
18684 81 : if (!(i8 >>> 0 < (i3 + 4 | 0) >>> 0) ? !((i8 - i3 | 0) >>> 0 > HEAP32[13392 >> 2] << 1 >>> 0) : 0) {
18685 81 : i15 = i1;
18686 81 : STACKTOP = i2;
18687 81 : return i15 | 0;
18688 81 : }
18689 81 : i15 = 0;
18690 81 : STACKTOP = i2;
18691 81 : return i15 | 0;
18692 81 : }
18693 81 : if (!(i8 >>> 0 < i3 >>> 0)) {
18694 81 : i5 = i8 - i3 | 0;
18695 81 : if (!(i5 >>> 0 > 15)) {
18696 81 : i15 = i1;
18697 81 : STACKTOP = i2;
18698 81 : return i15 | 0;
18699 81 : }
18700 81 : HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
18701 81 : HEAP32[i1 + (i3 + 4) >> 2] = i5 | 3;
18702 81 : HEAP32[i7 >> 2] = HEAP32[i7 >> 2] | 1;
18703 81 : _dispose_chunk(i1 + i3 | 0, i5);
18704 81 : i15 = i1;
18705 81 : STACKTOP = i2;
18706 81 : return i15 | 0;
18707 81 : }
18708 81 : if ((i5 | 0) == (HEAP32[12936 >> 2] | 0)) {
18709 81 : i5 = (HEAP32[12924 >> 2] | 0) + i8 | 0;
18710 81 : if (!(i5 >>> 0 > i3 >>> 0)) {
18711 81 : i15 = 0;
18712 81 : STACKTOP = i2;
18713 81 : return i15 | 0;
18714 81 : }
18715 81 : i15 = i5 - i3 | 0;
18716 81 : HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
18717 81 : HEAP32[i1 + (i3 + 4) >> 2] = i15 | 1;
18718 81 : HEAP32[12936 >> 2] = i1 + i3;
18719 81 : HEAP32[12924 >> 2] = i15;
18720 81 : i15 = i1;
18721 81 : STACKTOP = i2;
18722 81 : return i15 | 0;
18723 81 : }
18724 81 : if ((i5 | 0) == (HEAP32[12932 >> 2] | 0)) {
18725 81 : i7 = (HEAP32[12920 >> 2] | 0) + i8 | 0;
18726 81 : if (i7 >>> 0 < i3 >>> 0) {
18727 81 : i15 = 0;
18728 81 : STACKTOP = i2;
18729 81 : return i15 | 0;
18730 81 : }
18731 81 : i5 = i7 - i3 | 0;
18732 81 : if (i5 >>> 0 > 15) {
18733 81 : HEAP32[i4 >> 2] = i6 & 1 | i3 | 2;
18734 81 : HEAP32[i1 + (i3 + 4) >> 2] = i5 | 1;
18735 81 : HEAP32[i1 + i7 >> 2] = i5;
18736 81 : i15 = i1 + (i7 + 4) | 0;
18737 81 : HEAP32[i15 >> 2] = HEAP32[i15 >> 2] & -2;
18738 81 : i3 = i1 + i3 | 0;
18739 81 : } else {
18740 81 : HEAP32[i4 >> 2] = i6 & 1 | i7 | 2;
18741 81 : i3 = i1 + (i7 + 4) | 0;
18742 81 : HEAP32[i3 >> 2] = HEAP32[i3 >> 2] | 1;
18743 81 : i3 = 0;
18744 81 : i5 = 0;
18745 81 : }
18746 81 : HEAP32[12920 >> 2] = i5;
18747 81 : HEAP32[12932 >> 2] = i3;
18748 81 : i15 = i1;
18749 81 : STACKTOP = i2;
18750 81 : return i15 | 0;
18751 81 : }
18752 81 : if ((i13 & 2 | 0) != 0) {
18753 81 : i15 = 0;
18754 81 : STACKTOP = i2;
18755 81 : return i15 | 0;
18756 81 : }
18757 81 : i7 = (i13 & -8) + i8 | 0;
18758 81 : if (i7 >>> 0 < i3 >>> 0) {
18759 81 : i15 = 0;
18760 81 : STACKTOP = i2;
18761 81 : return i15 | 0;
18762 81 : }
18763 81 : i6 = i7 - i3 | 0;
18764 81 : i12 = i13 >>> 3;
18765 81 : do {
18766 81 : if (!(i13 >>> 0 < 256)) {
18767 81 : i11 = HEAP32[i1 + (i8 + 24) >> 2] | 0;
18768 81 : i13 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
18769 81 : do {
18770 81 : if ((i13 | 0) == (i5 | 0)) {
18771 81 : i13 = i1 + (i8 + 20) | 0;
18772 81 : i12 = HEAP32[i13 >> 2] | 0;
18773 81 : if ((i12 | 0) == 0) {
18774 81 : i13 = i1 + (i8 + 16) | 0;
18775 81 : i12 = HEAP32[i13 >> 2] | 0;
18776 81 : if ((i12 | 0) == 0) {
18777 81 : i9 = 0;
18778 81 : break;
18779 81 : }
18780 81 : }
18781 81 : while (1) {
18782 81 : i15 = i12 + 20 | 0;
18783 81 : i14 = HEAP32[i15 >> 2] | 0;
18784 81 : if ((i14 | 0) != 0) {
18785 81 : i12 = i14;
18786 81 : i13 = i15;
18787 81 : continue;
18788 81 : }
18789 81 : i15 = i12 + 16 | 0;
18790 81 : i14 = HEAP32[i15 >> 2] | 0;
18791 81 : if ((i14 | 0) == 0) {
18792 81 : break;
18793 81 : } else {
18794 81 : i12 = i14;
18795 81 : i13 = i15;
18796 81 : }
18797 81 : }
18798 81 : if (i13 >>> 0 < i10 >>> 0) {
18799 81 : _abort();
18800 81 : } else {
18801 81 : HEAP32[i13 >> 2] = 0;
18802 81 : i9 = i12;
18803 81 : break;
18804 81 : }
18805 81 : } else {
18806 81 : i12 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
18807 81 : if (i12 >>> 0 < i10 >>> 0) {
18808 81 : _abort();
18809 81 : }
18810 81 : i14 = i12 + 12 | 0;
18811 81 : if ((HEAP32[i14 >> 2] | 0) != (i5 | 0)) {
18812 81 : _abort();
18813 81 : }
18814 81 : i10 = i13 + 8 | 0;
18815 81 : if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
18816 81 : HEAP32[i14 >> 2] = i13;
18817 81 : HEAP32[i10 >> 2] = i12;
18818 81 : i9 = i13;
18819 81 : break;
18820 81 : } else {
18821 81 : _abort();
18822 81 : }
18823 81 : }
18824 81 : } while (0);
18825 81 : if ((i11 | 0) != 0) {
18826 81 : i10 = HEAP32[i1 + (i8 + 28) >> 2] | 0;
18827 81 : i12 = 13216 + (i10 << 2) | 0;
18828 81 : if ((i5 | 0) == (HEAP32[i12 >> 2] | 0)) {
18829 81 : HEAP32[i12 >> 2] = i9;
18830 81 : if ((i9 | 0) == 0) {
18831 81 : HEAP32[12916 >> 2] = HEAP32[12916 >> 2] & ~(1 << i10);
18832 81 : break;
18833 81 : }
18834 81 : } else {
18835 81 : if (i11 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
18836 81 : _abort();
18837 81 : }
18838 81 : i10 = i11 + 16 | 0;
18839 81 : if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
18840 81 : HEAP32[i10 >> 2] = i9;
18841 81 : } else {
18842 81 : HEAP32[i11 + 20 >> 2] = i9;
18843 81 : }
18844 81 : if ((i9 | 0) == 0) {
18845 81 : break;
18846 81 : }
18847 81 : }
18848 81 : if (i9 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
18849 81 : _abort();
18850 81 : }
18851 81 : HEAP32[i9 + 24 >> 2] = i11;
18852 81 : i5 = HEAP32[i1 + (i8 + 16) >> 2] | 0;
18853 81 : do {
18854 81 : if ((i5 | 0) != 0) {
18855 81 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
18856 81 : _abort();
18857 81 : } else {
18858 81 : HEAP32[i9 + 16 >> 2] = i5;
18859 81 : HEAP32[i5 + 24 >> 2] = i9;
18860 81 : break;
18861 81 : }
18862 81 : }
18863 81 : } while (0);
18864 81 : i5 = HEAP32[i1 + (i8 + 20) >> 2] | 0;
18865 81 : if ((i5 | 0) != 0) {
18866 81 : if (i5 >>> 0 < (HEAP32[12928 >> 2] | 0) >>> 0) {
18867 81 : _abort();
18868 81 : } else {
18869 81 : HEAP32[i9 + 20 >> 2] = i5;
18870 81 : HEAP32[i5 + 24 >> 2] = i9;
18871 81 : break;
18872 81 : }
18873 81 : }
18874 81 : }
18875 81 : } else {
18876 81 : i9 = HEAP32[i1 + (i8 + 8) >> 2] | 0;
18877 81 : i8 = HEAP32[i1 + (i8 + 12) >> 2] | 0;
18878 81 : i13 = 12952 + (i12 << 1 << 2) | 0;
18879 81 : if ((i9 | 0) != (i13 | 0)) {
18880 81 : if (i9 >>> 0 < i10 >>> 0) {
18881 81 : _abort();
18882 81 : }
18883 81 : if ((HEAP32[i9 + 12 >> 2] | 0) != (i5 | 0)) {
18884 81 : _abort();
18885 81 : }
18886 81 : }
18887 81 : if ((i8 | 0) == (i9 | 0)) {
18888 81 : HEAP32[3228] = HEAP32[3228] & ~(1 << i12);
18889 81 : break;
18890 81 : }
18891 81 : if ((i8 | 0) != (i13 | 0)) {
18892 81 : if (i8 >>> 0 < i10 >>> 0) {
18893 81 : _abort();
18894 81 : }
18895 81 : i10 = i8 + 8 | 0;
18896 81 : if ((HEAP32[i10 >> 2] | 0) == (i5 | 0)) {
18897 81 : i11 = i10;
18898 81 : } else {
18899 81 : _abort();
18900 81 : }
18901 81 : } else {
18902 81 : i11 = i8 + 8 | 0;
18903 81 : }
18904 81 : HEAP32[i9 + 12 >> 2] = i8;
18905 81 : HEAP32[i11 >> 2] = i9;
18906 81 : }
18907 81 : } while (0);
18908 81 : if (i6 >>> 0 < 16) {
18909 81 : HEAP32[i4 >> 2] = i7 | HEAP32[i4 >> 2] & 1 | 2;
18910 81 : i15 = i1 + (i7 | 4) | 0;
18911 81 : HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
18912 81 : i15 = i1;
18913 81 : STACKTOP = i2;
18914 81 : return i15 | 0;
18915 81 : } else {
18916 81 : HEAP32[i4 >> 2] = HEAP32[i4 >> 2] & 1 | i3 | 2;
18917 81 : HEAP32[i1 + (i3 + 4) >> 2] = i6 | 3;
18918 81 : i15 = i1 + (i7 | 4) | 0;
18919 81 : HEAP32[i15 >> 2] = HEAP32[i15 >> 2] | 1;
18920 81 : _dispose_chunk(i1 + i3 | 0, i6);
18921 81 : i15 = i1;
18922 81 : STACKTOP = i2;
18923 81 : return i15 | 0;
18924 81 : }
18925 81 : return 0;
18926 81 : }
18927 23 : function _luaK_posfix(i3, i16, i1, i4, i14) {
18928 23 : i3 = i3 | 0;
18929 23 : i16 = i16 | 0;
18930 23 : i1 = i1 | 0;
18931 23 : i4 = i4 | 0;
18932 23 : i14 = i14 | 0;
18933 23 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i15 = 0;
18934 23 : i2 = STACKTOP;
18935 23 : switch (i16 | 0) {
18936 23 : case 14:
18937 23 : {
18938 23 : _luaK_dischargevars(i3, i4);
18939 23 : i6 = i4 + 16 | 0;
18940 23 : i5 = HEAP32[i1 + 16 >> 2] | 0;
18941 23 : do {
18942 23 : if (!((i5 | 0) == -1)) {
18943 23 : i9 = HEAP32[i6 >> 2] | 0;
18944 23 : if ((i9 | 0) == -1) {
18945 23 : HEAP32[i6 >> 2] = i5;
18946 23 : break;
18947 23 : }
18948 23 : i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
18949 23 : while (1) {
18950 23 : i6 = i7 + (i9 << 2) | 0;
18951 23 : i8 = HEAP32[i6 >> 2] | 0;
18952 23 : i10 = (i8 >>> 14) + -131071 | 0;
18953 23 : if ((i10 | 0) == -1) {
18954 23 : break;
18955 23 : }
18956 23 : i10 = i9 + 1 + i10 | 0;
18957 23 : if ((i10 | 0) == -1) {
18958 23 : break;
18959 23 : } else {
18960 23 : i9 = i10;
18961 23 : }
18962 23 : }
18963 23 : i5 = i5 + ~i9 | 0;
18964 23 : if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
18965 23 : _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
18966 23 : } else {
18967 23 : HEAP32[i6 >> 2] = (i5 << 14) + 2147467264 | i8 & 16383;
18968 23 : break;
18969 23 : }
18970 23 : }
18971 23 : } while (0);
18972 23 : HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
18973 23 : HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
18974 23 : HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
18975 23 : HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
18976 23 : HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
18977 23 : HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
18978 23 : STACKTOP = i2;
18979 23 : return;
18980 23 : }
18981 23 : case 13:
18982 23 : {
18983 23 : _luaK_dischargevars(i3, i4);
18984 23 : i6 = i4 + 20 | 0;
18985 23 : i5 = HEAP32[i1 + 20 >> 2] | 0;
18986 23 : do {
18987 23 : if (!((i5 | 0) == -1)) {
18988 23 : i9 = HEAP32[i6 >> 2] | 0;
18989 23 : if ((i9 | 0) == -1) {
18990 23 : HEAP32[i6 >> 2] = i5;
18991 23 : break;
18992 23 : }
18993 23 : i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
18994 23 : while (1) {
18995 23 : i8 = i7 + (i9 << 2) | 0;
18996 23 : i6 = HEAP32[i8 >> 2] | 0;
18997 23 : i10 = (i6 >>> 14) + -131071 | 0;
18998 23 : if ((i10 | 0) == -1) {
18999 23 : break;
19000 23 : }
19001 23 : i10 = i9 + 1 + i10 | 0;
19002 23 : if ((i10 | 0) == -1) {
19003 23 : break;
19004 23 : } else {
19005 23 : i9 = i10;
19006 23 : }
19007 23 : }
19008 23 : i5 = i5 + ~i9 | 0;
19009 23 : if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
19010 23 : _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10624);
19011 23 : } else {
19012 23 : HEAP32[i8 >> 2] = (i5 << 14) + 2147467264 | i6 & 16383;
19013 23 : break;
19014 23 : }
19015 23 : }
19016 23 : } while (0);
19017 23 : HEAP32[i1 + 0 >> 2] = HEAP32[i4 + 0 >> 2];
19018 23 : HEAP32[i1 + 4 >> 2] = HEAP32[i4 + 4 >> 2];
19019 23 : HEAP32[i1 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
19020 23 : HEAP32[i1 + 12 >> 2] = HEAP32[i4 + 12 >> 2];
19021 23 : HEAP32[i1 + 16 >> 2] = HEAP32[i4 + 16 >> 2];
19022 23 : HEAP32[i1 + 20 >> 2] = HEAP32[i4 + 20 >> 2];
19023 23 : STACKTOP = i2;
19024 23 : return;
19025 23 : }
19026 23 : case 6:
19027 23 : {
19028 23 : i12 = i4 + 16 | 0;
19029 23 : i13 = i4 + 20 | 0;
19030 23 : i16 = (HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0);
19031 23 : _luaK_dischargevars(i3, i4);
19032 23 : do {
19033 23 : if (!i16) {
19034 23 : if ((HEAP32[i4 >> 2] | 0) == 6) {
19035 23 : i10 = HEAP32[i4 + 8 >> 2] | 0;
19036 23 : if ((HEAP32[i12 >> 2] | 0) == (HEAP32[i13 >> 2] | 0)) {
19037 23 : break;
19038 23 : }
19039 23 : if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
19040 23 : _exp2reg(i3, i4, i10);
19041 23 : break;
19042 23 : }
19043 23 : }
19044 23 : _luaK_exp2nextreg(i3, i4);
19045 23 : }
19046 23 : } while (0);
19047 23 : if ((HEAP32[i4 >> 2] | 0) == 11 ? (i5 = i4 + 8 | 0, i7 = HEAP32[i5 >> 2] | 0, i8 = (HEAP32[i3 >> 2] | 0) + 12 | 0, i9 = HEAP32[i8 >> 2] | 0, i6 = HEAP32[i9 + (i7 << 2) >> 2] | 0, (i6 & 63 | 0) == 22) : 0) {
19048 23 : i4 = i1 + 8 | 0;
19049 23 : if (((HEAP32[i1 >> 2] | 0) == 6 ? (i11 = HEAP32[i4 >> 2] | 0, (i11 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i11 | 0) : 0) {
19050 23 : i6 = i3 + 48 | 0;
19051 23 : HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
19052 23 : i6 = HEAP32[i5 >> 2] | 0;
19053 23 : i16 = HEAP32[i8 >> 2] | 0;
19054 23 : i9 = i16;
19055 23 : i7 = i6;
19056 23 : i6 = HEAP32[i16 + (i6 << 2) >> 2] | 0;
19057 23 : }
19058 23 : HEAP32[i9 + (i7 << 2) >> 2] = HEAP32[i4 >> 2] << 23 | i6 & 8388607;
19059 23 : HEAP32[i1 >> 2] = 11;
19060 23 : HEAP32[i4 >> 2] = HEAP32[i5 >> 2];
19061 23 : STACKTOP = i2;
19062 23 : return;
19063 23 : }
19064 23 : _luaK_exp2nextreg(i3, i4);
19065 23 : _codearith(i3, 22, i1, i4, i14);
19066 23 : STACKTOP = i2;
19067 23 : return;
19068 23 : }
19069 23 : case 9:
19070 23 : case 8:
19071 23 : case 7:
19072 23 : {
19073 23 : i7 = i16 + 17 | 0;
19074 23 : i6 = _luaK_exp2RK(i3, i1) | 0;
19075 23 : i5 = _luaK_exp2RK(i3, i4) | 0;
19076 23 : if (((HEAP32[i4 >> 2] | 0) == 6 ? (i15 = HEAP32[i4 + 8 >> 2] | 0, (i15 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i15 | 0) : 0) {
19077 23 : i16 = i3 + 48 | 0;
19078 23 : HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
19079 23 : }
19080 23 : i4 = i1 + 8 | 0;
19081 23 : if (((HEAP32[i1 >> 2] | 0) == 6 ? (i10 = HEAP32[i4 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
19082 23 : i16 = i3 + 48 | 0;
19083 23 : HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
19084 23 : }
19085 23 : HEAP32[i4 >> 2] = _condjump(i3, i7, 1, i6, i5) | 0;
19086 23 : HEAP32[i1 >> 2] = 10;
19087 23 : STACKTOP = i2;
19088 23 : return;
19089 23 : }
19090 23 : case 12:
19091 23 : case 11:
19092 23 : case 10:
19093 23 : {
19094 23 : i7 = i16 + 14 | 0;
19095 23 : i6 = _luaK_exp2RK(i3, i1) | 0;
19096 23 : i5 = _luaK_exp2RK(i3, i4) | 0;
19097 23 : if (((HEAP32[i4 >> 2] | 0) == 6 ? (i13 = HEAP32[i4 + 8 >> 2] | 0, (i13 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i13 | 0) : 0) {
19098 23 : i16 = i3 + 48 | 0;
19099 23 : HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
19100 23 : }
19101 23 : i4 = i1 + 8 | 0;
19102 23 : if (((HEAP32[i1 >> 2] | 0) == 6 ? (i12 = HEAP32[i4 >> 2] | 0, (i12 & 256 | 0) == 0) : 0) ? (HEAPU8[i3 + 46 | 0] | 0 | 0) <= (i12 | 0) : 0) {
19103 23 : i16 = i3 + 48 | 0;
19104 23 : HEAP8[i16] = (HEAP8[i16] | 0) + -1 << 24 >> 24;
19105 23 : }
19106 23 : i8 = (i7 | 0) == 24;
19107 23 : HEAP32[i4 >> 2] = _condjump(i3, i7, i8 & 1 ^ 1, i8 ? i6 : i5, i8 ? i5 : i6) | 0;
19108 23 : HEAP32[i1 >> 2] = 10;
19109 23 : STACKTOP = i2;
19110 23 : return;
19111 23 : }
19112 23 : case 5:
19113 23 : case 4:
19114 23 : case 3:
19115 23 : case 2:
19116 23 : case 1:
19117 23 : case 0:
19118 23 : {
19119 23 : _codearith(i3, i16 + 13 | 0, i1, i4, i14);
19120 23 : STACKTOP = i2;
19121 23 : return;
19122 23 : }
19123 23 : default:
19124 23 : {
19125 23 : STACKTOP = i2;
19126 23 : return;
19127 23 : }
19128 23 : }
19129 23 : }
19130 2 : function _body(i1, i4, i13, i5) {
19131 2 : i1 = i1 | 0;
19132 2 : i4 = i4 | 0;
19133 2 : i13 = i13 | 0;
19134 2 : i5 = i5 | 0;
19135 2 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0;
19136 2 : i6 = STACKTOP;
19137 2 : STACKTOP = STACKTOP + 64 | 0;
19138 2 : i3 = i6 + 12 | 0;
19139 2 : i14 = i6;
19140 2 : i2 = i1 + 48 | 0;
19141 2 : i19 = HEAP32[i2 >> 2] | 0;
19142 2 : i18 = i1 + 52 | 0;
19143 2 : i17 = HEAP32[i18 >> 2] | 0;
19144 2 : i16 = HEAP32[i19 >> 2] | 0;
19145 2 : i19 = i19 + 36 | 0;
19146 2 : i23 = i16 + 56 | 0;
19147 2 : i24 = HEAP32[i23 >> 2] | 0;
19148 2 : i15 = i16 + 16 | 0;
19149 2 : if (((HEAP32[i19 >> 2] | 0) >= (i24 | 0) ? (i21 = _luaM_growaux_(i17, HEAP32[i15 >> 2] | 0, i23, 4, 262143, 6512) | 0, HEAP32[i15 >> 2] = i21, i20 = HEAP32[i23 >> 2] | 0, (i24 | 0) < (i20 | 0)) : 0) ? (i22 = i24 + 1 | 0, HEAP32[i21 + (i24 << 2) >> 2] = 0, (i22 | 0) < (i20 | 0)) : 0) {
19150 2 : while (1) {
19151 2 : i21 = i22 + 1 | 0;
19152 2 : HEAP32[(HEAP32[i15 >> 2] | 0) + (i22 << 2) >> 2] = 0;
19153 2 : if ((i21 | 0) == (i20 | 0)) {
19154 2 : break;
19155 2 : } else {
19156 2 : i22 = i21;
19157 2 : }
19158 2 : }
19159 2 : }
19160 2 : i20 = _luaF_newproto(i17) | 0;
19161 2 : i24 = HEAP32[i19 >> 2] | 0;
19162 2 : HEAP32[i19 >> 2] = i24 + 1;
19163 2 : HEAP32[(HEAP32[i15 >> 2] | 0) + (i24 << 2) >> 2] = i20;
19164 2 : if (!((HEAP8[i20 + 5 | 0] & 3) == 0) ? !((HEAP8[i16 + 5 | 0] & 4) == 0) : 0) {
19165 2 : _luaC_barrier_(i17, i16, i20);
19166 2 : }
19167 2 : HEAP32[i3 >> 2] = i20;
19168 2 : HEAP32[i20 + 64 >> 2] = i5;
19169 2 : i16 = HEAP32[i18 >> 2] | 0;
19170 2 : HEAP32[i3 + 8 >> 2] = HEAP32[i2 >> 2];
19171 2 : i17 = i3 + 12 | 0;
19172 2 : HEAP32[i17 >> 2] = i1;
19173 2 : HEAP32[i2 >> 2] = i3;
19174 2 : HEAP32[i3 + 20 >> 2] = 0;
19175 2 : HEAP32[i3 + 24 >> 2] = 0;
19176 2 : HEAP32[i3 + 28 >> 2] = -1;
19177 2 : HEAP32[i3 + 32 >> 2] = 0;
19178 2 : HEAP32[i3 + 36 >> 2] = 0;
19179 2 : i22 = i3 + 44 | 0;
19180 2 : i15 = i1 + 64 | 0;
19181 2 : HEAP32[i22 + 0 >> 2] = 0;
19182 2 : HEAP8[i22 + 4 | 0] = 0;
19183 2 : HEAP32[i3 + 40 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 4 >> 2];
19184 2 : i15 = i3 + 16 | 0;
19185 2 : HEAP32[i15 >> 2] = 0;
19186 2 : HEAP32[i20 + 36 >> 2] = HEAP32[i1 + 68 >> 2];
19187 2 : HEAP8[i20 + 78 | 0] = 2;
19188 2 : i22 = _luaH_new(i16) | 0;
19189 2 : HEAP32[i3 + 4 >> 2] = i22;
19190 2 : i23 = i16 + 8 | 0;
19191 2 : i24 = HEAP32[i23 >> 2] | 0;
19192 2 : HEAP32[i24 >> 2] = i22;
19193 2 : HEAP32[i24 + 8 >> 2] = 69;
19194 2 : i24 = (HEAP32[i23 >> 2] | 0) + 16 | 0;
19195 2 : HEAP32[i23 >> 2] = i24;
19196 2 : if (((HEAP32[i16 + 24 >> 2] | 0) - i24 | 0) < 16) {
19197 2 : _luaD_growstack(i16, 0);
19198 2 : }
19199 2 : HEAP8[i14 + 10 | 0] = 0;
19200 2 : HEAP8[i14 + 8 | 0] = HEAP8[i3 + 46 | 0] | 0;
19201 2 : i24 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
19202 2 : HEAP16[i14 + 4 >> 1] = HEAP32[i24 + 28 >> 2];
19203 2 : HEAP16[i14 + 6 >> 1] = HEAP32[i24 + 16 >> 2];
19204 2 : HEAP8[i14 + 9 | 0] = 0;
19205 2 : HEAP32[i14 >> 2] = HEAP32[i15 >> 2];
19206 2 : HEAP32[i15 >> 2] = i14;
19207 2 : i14 = i1 + 16 | 0;
19208 2 : if ((HEAP32[i14 >> 2] | 0) != 40) {
19209 2 : _error_expected(i1, 40);
19210 2 : }
19211 2 : _luaX_next(i1);
19212 2 : if ((i13 | 0) != 0) {
19213 2 : _new_localvar(i1, _luaX_newstring(i1, 6456, 4) | 0);
19214 2 : i24 = HEAP32[i2 >> 2] | 0;
19215 2 : i22 = i24 + 46 | 0;
19216 2 : i23 = (HEAPU8[i22] | 0) + 1 | 0;
19217 2 : HEAP8[i22] = i23;
19218 2 : HEAP32[(HEAP32[(HEAP32[i24 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i24 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((i23 & 255) + -1 + (HEAP32[i24 + 40 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i24 + 20 >> 2];
19219 2 : }
19220 2 : i13 = HEAP32[i2 >> 2] | 0;
19221 2 : i15 = HEAP32[i13 >> 2] | 0;
19222 2 : i16 = i15 + 77 | 0;
19223 2 : HEAP8[i16] = 0;
19224 2 : i19 = HEAP32[i14 >> 2] | 0;
19225 2 : L20 : do {
19226 2 : if ((i19 | 0) != 41) {
19227 2 : i17 = i1 + 24 | 0;
19228 2 : i18 = 0;
19229 2 : while (1) {
19230 2 : if ((i19 | 0) == 280) {
19231 2 : i17 = 18;
19232 2 : break;
19233 2 : } else if ((i19 | 0) != 288) {
19234 2 : i17 = 19;
19235 2 : break;
19236 2 : }
19237 2 : i24 = HEAP32[i17 >> 2] | 0;
19238 2 : _luaX_next(i1);
19239 2 : _new_localvar(i1, i24);
19240 2 : i18 = i18 + 1 | 0;
19241 2 : if ((HEAP8[i16] | 0) != 0) {
19242 2 : i11 = i18;
19243 2 : break L20;
19244 2 : }
19245 2 : if ((HEAP32[i14 >> 2] | 0) != 44) {
19246 2 : i11 = i18;
19247 2 : break L20;
19248 2 : }
19249 2 : _luaX_next(i1);
19250 2 : i19 = HEAP32[i14 >> 2] | 0;
19251 2 : }
19252 2 : if ((i17 | 0) == 18) {
19253 2 : _luaX_next(i1);
19254 2 : HEAP8[i16] = 1;
19255 2 : i11 = i18;
19256 2 : break;
19257 2 : } else if ((i17 | 0) == 19) {
19258 2 : _luaX_syntaxerror(i1, 6464);
19259 2 : }
19260 2 : } else {
19261 2 : i11 = 0;
19262 2 : }
19263 2 : } while (0);
19264 2 : i18 = HEAP32[i2 >> 2] | 0;
19265 2 : i16 = i18 + 46 | 0;
19266 2 : i17 = (HEAPU8[i16] | 0) + i11 | 0;
19267 2 : HEAP8[i16] = i17;
19268 2 : if ((i11 | 0) != 0 ? (i8 = i18 + 20 | 0, i9 = i18 + 40 | 0, i7 = HEAP32[(HEAP32[i18 >> 2] | 0) + 24 >> 2] | 0, i10 = HEAP32[HEAP32[(HEAP32[i18 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i7 + ((HEAP16[i10 + ((i17 & 255) - i11 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2], i12 = i11 + -1 | 0, (i12 | 0) != 0) : 0) {
19269 2 : do {
19270 2 : HEAP32[i7 + ((HEAP16[i10 + ((HEAPU8[i16] | 0) - i12 + (HEAP32[i9 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i8 >> 2];
19271 2 : i12 = i12 + -1 | 0;
19272 2 : } while ((i12 | 0) != 0);
19273 2 : }
19274 2 : i24 = i13 + 46 | 0;
19275 2 : HEAP8[i15 + 76 | 0] = HEAP8[i24] | 0;
19276 2 : _luaK_reserveregs(i13, HEAPU8[i24] | 0);
19277 2 : if ((HEAP32[i14 >> 2] | 0) != 41) {
19278 2 : _error_expected(i1, 41);
19279 2 : }
19280 2 : _luaX_next(i1);
19281 2 : L39 : while (1) {
19282 2 : i7 = HEAP32[i14 >> 2] | 0;
19283 2 : switch (i7 | 0) {
19284 2 : case 277:
19285 2 : case 286:
19286 2 : case 262:
19287 2 : case 261:
19288 2 : case 260:
19289 2 : {
19290 2 : i17 = 30;
19291 2 : break L39;
19292 2 : }
19293 2 : default:
19294 2 : {}
19295 2 : }
19296 2 : _statement(i1);
19297 2 : if ((i7 | 0) == 274) {
19298 2 : i17 = 30;
19299 2 : break;
19300 2 : }
19301 2 : }
19302 2 : if ((i17 | 0) == 30) {
19303 2 : HEAP32[(HEAP32[i3 >> 2] | 0) + 68 >> 2] = HEAP32[i1 + 4 >> 2];
19304 2 : _check_match(i1, 262, 265, i5);
19305 2 : i24 = HEAP32[(HEAP32[i2 >> 2] | 0) + 8 >> 2] | 0;
19306 2 : i23 = _luaK_codeABx(i24, 37, 0, (HEAP32[i24 + 36 >> 2] | 0) + -1 | 0) | 0;
19307 2 : HEAP32[i4 + 16 >> 2] = -1;
19308 2 : HEAP32[i4 + 20 >> 2] = -1;
19309 2 : HEAP32[i4 >> 2] = 11;
19310 2 : HEAP32[i4 + 8 >> 2] = i23;
19311 2 : _luaK_exp2nextreg(i24, i4);
19312 2 : _close_func(i1);
19313 2 : STACKTOP = i6;
19314 2 : return;
19315 2 : }
19316 2 : }
19317 563 : function _luaH_newkey(i3, i2, i1) {
19318 563 : i3 = i3 | 0;
19319 563 : i2 = i2 | 0;
19320 563 : i1 = i1 | 0;
19321 563 : var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, d21 = 0.0;
19322 563 : i4 = STACKTOP;
19323 563 : STACKTOP = STACKTOP + 144 | 0;
19324 563 : i8 = i4 + 8 | 0;
19325 563 : i10 = i4;
19326 563 : i5 = i4 + 16 | 0;
19327 563 : i6 = i1 + 8 | 0;
19328 563 : i11 = HEAP32[i6 >> 2] | 0;
19329 563 : if ((i11 | 0) == 0) {
19330 563 : _luaG_runerror(i3, 7968, i8);
19331 563 : } else if ((i11 | 0) == 3) {
19332 563 : i15 = 3;
19333 563 : }
19334 563 : if ((i15 | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], !(d21 == d21 & 0.0 == 0.0)) : 0) {
19335 563 : _luaG_runerror(i3, 7992, i8);
19336 563 : }
19337 563 : i13 = _mainposition(i2, i1) | 0;
19338 563 : i14 = i13 + 8 | 0;
19339 563 : do {
19340 563 : if ((HEAP32[i14 >> 2] | 0) != 0 | (i13 | 0) == 8016) {
19341 563 : i18 = i2 + 20 | 0;
19342 563 : i11 = i2 + 16 | 0;
19343 563 : i17 = HEAP32[i11 >> 2] | 0;
19344 563 : i16 = HEAP32[i18 >> 2] | 0;
19345 563 : while (1) {
19346 563 : if (!(i16 >>> 0 > i17 >>> 0)) {
19347 563 : break;
19348 563 : }
19349 563 : i12 = i16 + -32 | 0;
19350 563 : HEAP32[i18 >> 2] = i12;
19351 563 : if ((HEAP32[i16 + -8 >> 2] | 0) == 0) {
19352 563 : i15 = 37;
19353 563 : break;
19354 563 : } else {
19355 563 : i16 = i12;
19356 563 : }
19357 563 : }
19358 563 : if ((i15 | 0) == 37) {
19359 563 : i5 = _mainposition(i2, i13 + 16 | 0) | 0;
19360 563 : if ((i5 | 0) == (i13 | 0)) {
19361 563 : i20 = i13 + 28 | 0;
19362 563 : HEAP32[i16 + -4 >> 2] = HEAP32[i20 >> 2];
19363 563 : HEAP32[i20 >> 2] = i12;
19364 563 : break;
19365 563 : } else {
19366 563 : i7 = i5;
19367 563 : }
19368 563 : do {
19369 563 : i5 = i7 + 28 | 0;
19370 563 : i7 = HEAP32[i5 >> 2] | 0;
19371 563 : } while ((i7 | 0) != (i13 | 0));
19372 563 : HEAP32[i5 >> 2] = i12;
19373 563 : HEAP32[i12 + 0 >> 2] = HEAP32[i13 + 0 >> 2];
19374 563 : HEAP32[i12 + 4 >> 2] = HEAP32[i13 + 4 >> 2];
19375 563 : HEAP32[i12 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
19376 563 : HEAP32[i12 + 12 >> 2] = HEAP32[i13 + 12 >> 2];
19377 563 : HEAP32[i12 + 16 >> 2] = HEAP32[i13 + 16 >> 2];
19378 563 : HEAP32[i12 + 20 >> 2] = HEAP32[i13 + 20 >> 2];
19379 563 : HEAP32[i12 + 24 >> 2] = HEAP32[i13 + 24 >> 2];
19380 563 : HEAP32[i12 + 28 >> 2] = HEAP32[i13 + 28 >> 2];
19381 563 : HEAP32[i13 + 28 >> 2] = 0;
19382 563 : HEAP32[i14 >> 2] = 0;
19383 563 : i12 = i13;
19384 563 : break;
19385 563 : }
19386 563 : i13 = i5 + 0 | 0;
19387 563 : i12 = i13 + 124 | 0;
19388 563 : do {
19389 563 : HEAP32[i13 >> 2] = 0;
19390 563 : i13 = i13 + 4 | 0;
19391 563 : } while ((i13 | 0) < (i12 | 0));
19392 563 : i15 = i2 + 12 | 0;
19393 563 : i13 = HEAP32[i2 + 28 >> 2] | 0;
19394 563 : i12 = 0;
19395 563 : i20 = 1;
19396 563 : i16 = 0;
19397 563 : i14 = 1;
19398 563 : while (1) {
19399 563 : if ((i14 | 0) > (i13 | 0)) {
19400 563 : if ((i20 | 0) > (i13 | 0)) {
19401 563 : break;
19402 563 : } else {
19403 563 : i19 = i13;
19404 563 : }
19405 563 : } else {
19406 563 : i19 = i14;
19407 563 : }
19408 563 : if ((i20 | 0) > (i19 | 0)) {
19409 563 : i18 = i20;
19410 563 : i17 = 0;
19411 563 : } else {
19412 563 : i18 = HEAP32[i15 >> 2] | 0;
19413 563 : i17 = 0;
19414 563 : while (1) {
19415 563 : i17 = ((HEAP32[i18 + (i20 + -1 << 4) + 8 >> 2] | 0) != 0) + i17 | 0;
19416 563 : if ((i20 | 0) >= (i19 | 0)) {
19417 563 : break;
19418 563 : } else {
19419 563 : i20 = i20 + 1 | 0;
19420 563 : }
19421 563 : }
19422 563 : i18 = i19 + 1 | 0;
19423 563 : }
19424 563 : i20 = i5 + (i16 << 2) | 0;
19425 563 : HEAP32[i20 >> 2] = (HEAP32[i20 >> 2] | 0) + i17;
19426 563 : i12 = i17 + i12 | 0;
19427 563 : i16 = i16 + 1 | 0;
19428 563 : if ((i16 | 0) < 31) {
19429 563 : i20 = i18;
19430 563 : i14 = i14 << 1;
19431 563 : } else {
19432 563 : break;
19433 563 : }
19434 563 : }
19435 563 : i14 = 0;
19436 563 : i15 = 1 << (HEAPU8[i2 + 7 | 0] | 0);
19437 563 : i13 = 0;
19438 563 : L32 : while (1) {
19439 563 : i16 = i15;
19440 563 : while (1) {
19441 563 : i15 = i16 + -1 | 0;
19442 563 : if ((i16 | 0) == 0) {
19443 563 : break L32;
19444 563 : }
19445 563 : i16 = HEAP32[i11 >> 2] | 0;
19446 563 : if ((HEAP32[i16 + (i15 << 5) + 8 >> 2] | 0) == 0) {
19447 563 : i16 = i15;
19448 563 : } else {
19449 563 : break;
19450 563 : }
19451 563 : }
19452 563 : if (((HEAP32[i16 + (i15 << 5) + 24 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i16 + (i15 << 5) + 16 >> 3], HEAPF64[i10 >> 3] = d21 + 6755399441055744.0, i9 = HEAP32[i10 >> 2] | 0, +(i9 | 0) == d21) : 0) ? (i9 + -1 | 0) >>> 0 < 1073741824 : 0) {
19453 563 : i16 = i5 + ((_luaO_ceillog2(i9) | 0) << 2) | 0;
19454 563 : HEAP32[i16 >> 2] = (HEAP32[i16 >> 2] | 0) + 1;
19455 563 : i16 = 1;
19456 563 : } else {
19457 563 : i16 = 0;
19458 563 : }
19459 563 : i14 = i16 + i14 | 0;
19460 563 : i13 = i13 + 1 | 0;
19461 563 : }
19462 563 : i9 = i14 + i12 | 0;
19463 563 : if (((HEAP32[i6 >> 2] | 0) == 3 ? (d21 = +HEAPF64[i1 >> 3], HEAPF64[i8 >> 3] = d21 + 6755399441055744.0, i7 = HEAP32[i8 >> 2] | 0, +(i7 | 0) == d21) : 0) ? (i7 + -1 | 0) >>> 0 < 1073741824 : 0) {
19464 563 : i6 = i5 + ((_luaO_ceillog2(i7) | 0) << 2) | 0;
19465 563 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 1;
19466 563 : i6 = 1;
19467 563 : } else {
19468 563 : i6 = 0;
19469 563 : }
19470 563 : i7 = i9 + i6 | 0;
19471 563 : L49 : do {
19472 563 : if ((i7 | 0) > 0) {
19473 563 : i14 = 0;
19474 563 : i10 = 0;
19475 563 : i6 = 0;
19476 563 : i8 = 0;
19477 563 : i11 = 0;
19478 563 : i9 = 1;
19479 563 : while (1) {
19480 563 : i15 = HEAP32[i5 + (i6 << 2) >> 2] | 0;
19481 563 : if ((i15 | 0) > 0) {
19482 563 : i15 = i15 + i10 | 0;
19483 563 : i14 = (i15 | 0) > (i14 | 0);
19484 563 : i10 = i15;
19485 563 : i8 = i14 ? i9 : i8;
19486 563 : i11 = i14 ? i15 : i11;
19487 563 : }
19488 563 : if ((i10 | 0) == (i7 | 0)) {
19489 563 : break L49;
19490 563 : }
19491 563 : i9 = i9 << 1;
19492 563 : i14 = (i9 | 0) / 2 | 0;
19493 563 : if ((i14 | 0) < (i7 | 0)) {
19494 563 : i6 = i6 + 1 | 0;
19495 563 : } else {
19496 563 : break;
19497 563 : }
19498 563 : }
19499 563 : } else {
19500 563 : i8 = 0;
19501 563 : i11 = 0;
19502 563 : }
19503 563 : } while (0);
19504 563 : _luaH_resize(i3, i2, i8, i12 + 1 + i13 - i11 | 0);
19505 563 : i5 = _luaH_get(i2, i1) | 0;
19506 563 : if ((i5 | 0) != 5192) {
19507 563 : i20 = i5;
19508 563 : STACKTOP = i4;
19509 563 : return i20 | 0;
19510 563 : }
19511 563 : i20 = _luaH_newkey(i3, i2, i1) | 0;
19512 563 : STACKTOP = i4;
19513 563 : return i20 | 0;
19514 563 : } else {
19515 563 : i12 = i13;
19516 563 : }
19517 563 : } while (0);
19518 563 : i18 = i1;
19519 563 : i19 = HEAP32[i18 + 4 >> 2] | 0;
19520 563 : i20 = i12 + 16 | 0;
19521 563 : HEAP32[i20 >> 2] = HEAP32[i18 >> 2];
19522 563 : HEAP32[i20 + 4 >> 2] = i19;
19523 563 : HEAP32[i12 + 24 >> 2] = HEAP32[i6 >> 2];
19524 563 : if (((HEAP32[i6 >> 2] & 64 | 0) != 0 ? !((HEAP8[(HEAP32[i1 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) ? !((HEAP8[i2 + 5 | 0] & 4) == 0) : 0) {
19525 563 : _luaC_barrierback_(i3, i2);
19526 563 : }
19527 563 : i20 = i12;
19528 563 : STACKTOP = i4;
19529 563 : return i20 | 0;
19530 563 : }
19531 1 : function _luaV_concat(i7, i10) {
19532 1 : i7 = i7 | 0;
19533 1 : i10 = i10 | 0;
19534 1 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0;
19535 1 : i5 = STACKTOP;
19536 1 : STACKTOP = STACKTOP + 48 | 0;
19537 1 : i9 = i5;
19538 1 : i8 = i5 + 8 | 0;
19539 1 : i6 = i7 + 8 | 0;
19540 1 : i2 = i7 + 12 | 0;
19541 1 : i3 = i7 + 28 | 0;
19542 1 : i4 = i7 + 16 | 0;
19543 1 : i11 = HEAP32[i6 >> 2] | 0;
19544 1 : L1 : while (1) {
19545 1 : i14 = i11 + -32 | 0;
19546 1 : i12 = i11 + -24 | 0;
19547 1 : i17 = HEAP32[i12 >> 2] | 0;
19548 1 : i13 = i11 + -16 | 0;
19549 1 : do {
19550 1 : if ((i17 & 15 | 0) == 4 | (i17 | 0) == 3) {
19551 1 : i15 = i11 + -8 | 0;
19552 1 : i16 = HEAP32[i15 >> 2] | 0;
19553 1 : if ((i16 & 15 | 0) == 4) {
19554 1 : i16 = i13;
19555 1 : } else {
19556 1 : if ((i16 | 0) != 3) {
19557 1 : i1 = 7;
19558 1 : break;
19559 1 : }
19560 1 : HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i13 >> 3];
19561 1 : HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
19562 1 : HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
19563 1 : i16 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
19564 1 : HEAP32[i13 >> 2] = i16;
19565 1 : HEAP32[i15 >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
19566 1 : i16 = i13;
19567 1 : i17 = HEAP32[i12 >> 2] | 0;
19568 1 : }
19569 1 : i16 = HEAP32[(HEAP32[i16 >> 2] | 0) + 12 >> 2] | 0;
19570 1 : i18 = (i17 & 15 | 0) == 4;
19571 1 : if ((i16 | 0) == 0) {
19572 1 : if (i18) {
19573 1 : i12 = 2;
19574 1 : break;
19575 1 : }
19576 1 : if ((i17 | 0) != 3) {
19577 1 : i12 = 2;
19578 1 : break;
19579 1 : }
19580 1 : HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
19581 1 : HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
19582 1 : HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
19583 1 : i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
19584 1 : HEAP32[i14 >> 2] = i18;
19585 1 : HEAP32[i12 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
19586 1 : i12 = 2;
19587 1 : break;
19588 1 : }
19589 1 : if (i18 ? (HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0) == 0 : 0) {
19590 1 : i16 = i13;
19591 1 : i17 = HEAP32[i16 + 4 >> 2] | 0;
19592 1 : i18 = i14;
19593 1 : HEAP32[i18 >> 2] = HEAP32[i16 >> 2];
19594 1 : HEAP32[i18 + 4 >> 2] = i17;
19595 1 : HEAP32[i12 >> 2] = HEAP32[i15 >> 2];
19596 1 : i12 = 2;
19597 1 : break;
19598 1 : }
19599 1 : L19 : do {
19600 1 : if ((i10 | 0) > 1) {
19601 1 : i12 = 1;
19602 1 : do {
19603 1 : i15 = ~i12;
19604 1 : i14 = i11 + (i15 << 4) | 0;
19605 1 : i15 = i11 + (i15 << 4) + 8 | 0;
19606 1 : i13 = HEAP32[i15 >> 2] | 0;
19607 1 : if ((i13 & 15 | 0) != 4) {
19608 1 : if ((i13 | 0) != 3) {
19609 1 : break L19;
19610 1 : }
19611 1 : HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i14 >> 3];
19612 1 : HEAP32[i9 >> 2] = HEAP32[tempDoublePtr >> 2];
19613 1 : HEAP32[i9 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
19614 1 : i18 = _luaS_newlstr(i7, i8, _sprintf(i8 | 0, 8936, i9 | 0) | 0) | 0;
19615 1 : HEAP32[i14 >> 2] = i18;
19616 1 : HEAP32[i15 >> 2] = HEAPU8[i18 + 4 | 0] | 0 | 64;
19617 1 : }
19618 1 : i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 12 >> 2] | 0;
19619 1 : if (!(i13 >>> 0 < (-3 - i16 | 0) >>> 0)) {
19620 1 : i1 = 24;
19621 1 : break L1;
19622 1 : }
19623 1 : i16 = i13 + i16 | 0;
19624 1 : i12 = i12 + 1 | 0;
19625 1 : } while ((i12 | 0) < (i10 | 0));
19626 1 : } else {
19627 1 : i12 = 1;
19628 1 : }
19629 1 : } while (0);
19630 1 : i14 = _luaZ_openspace(i7, (HEAP32[i2 >> 2] | 0) + 144 | 0, i16) | 0;
19631 1 : i15 = i12;
19632 1 : i13 = 0;
19633 1 : do {
19634 1 : i17 = HEAP32[i11 + (0 - i15 << 4) >> 2] | 0;
19635 1 : i18 = HEAP32[i17 + 12 >> 2] | 0;
19636 1 : _memcpy(i14 + i13 | 0, i17 + 16 | 0, i18 | 0) | 0;
19637 1 : i13 = i18 + i13 | 0;
19638 1 : i15 = i15 + -1 | 0;
19639 1 : } while ((i15 | 0) > 0);
19640 1 : i18 = 0 - i12 | 0;
19641 1 : i17 = _luaS_newlstr(i7, i14, i13) | 0;
19642 1 : HEAP32[i11 + (i18 << 4) >> 2] = i17;
19643 1 : HEAP32[i11 + (i18 << 4) + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 0 | 64;
19644 1 : } else {
19645 1 : i1 = 7;
19646 1 : }
19647 1 : } while (0);
19648 1 : if ((i1 | 0) == 7) {
19649 1 : i1 = 0;
19650 1 : i15 = _luaT_gettmbyobj(i7, i14, 15) | 0;
19651 1 : if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
19652 1 : i15 = _luaT_gettmbyobj(i7, i13, 15) | 0;
19653 1 : if ((HEAP32[i15 + 8 >> 2] | 0) == 0) {
19654 1 : i1 = 10;
19655 1 : break;
19656 1 : }
19657 1 : }
19658 1 : i18 = i14 - (HEAP32[i3 >> 2] | 0) | 0;
19659 1 : i16 = HEAP32[i6 >> 2] | 0;
19660 1 : HEAP32[i6 >> 2] = i16 + 16;
19661 1 : i20 = i15;
19662 1 : i19 = HEAP32[i20 + 4 >> 2] | 0;
19663 1 : i17 = i16;
19664 1 : HEAP32[i17 >> 2] = HEAP32[i20 >> 2];
19665 1 : HEAP32[i17 + 4 >> 2] = i19;
19666 1 : HEAP32[i16 + 8 >> 2] = HEAP32[i15 + 8 >> 2];
19667 1 : i15 = HEAP32[i6 >> 2] | 0;
19668 1 : HEAP32[i6 >> 2] = i15 + 16;
19669 1 : i16 = i14;
19670 1 : i17 = HEAP32[i16 + 4 >> 2] | 0;
19671 1 : i14 = i15;
19672 1 : HEAP32[i14 >> 2] = HEAP32[i16 >> 2];
19673 1 : HEAP32[i14 + 4 >> 2] = i17;
19674 1 : HEAP32[i15 + 8 >> 2] = HEAP32[i12 >> 2];
19675 1 : i12 = HEAP32[i6 >> 2] | 0;
19676 1 : HEAP32[i6 >> 2] = i12 + 16;
19677 1 : i15 = i13;
19678 1 : i14 = HEAP32[i15 + 4 >> 2] | 0;
19679 1 : i17 = i12;
19680 1 : HEAP32[i17 >> 2] = HEAP32[i15 >> 2];
19681 1 : HEAP32[i17 + 4 >> 2] = i14;
19682 1 : HEAP32[i12 + 8 >> 2] = HEAP32[i11 + -8 >> 2];
19683 1 : _luaD_call(i7, (HEAP32[i6 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i4 >> 2] | 0) + 18 | 0] & 1);
19684 1 : i12 = HEAP32[i3 >> 2] | 0;
19685 1 : i17 = HEAP32[i6 >> 2] | 0;
19686 1 : i14 = i17 + -16 | 0;
19687 1 : HEAP32[i6 >> 2] = i14;
19688 1 : i15 = HEAP32[i14 + 4 >> 2] | 0;
19689 1 : i16 = i12 + i18 | 0;
19690 1 : HEAP32[i16 >> 2] = HEAP32[i14 >> 2];
19691 1 : HEAP32[i16 + 4 >> 2] = i15;
19692 1 : HEAP32[i12 + (i18 + 8) >> 2] = HEAP32[i17 + -8 >> 2];
19693 1 : i12 = 2;
19694 1 : }
19695 1 : i10 = i10 + 1 - i12 | 0;
19696 1 : i11 = (HEAP32[i6 >> 2] | 0) + (1 - i12 << 4) | 0;
19697 1 : HEAP32[i6 >> 2] = i11;
19698 1 : if ((i10 | 0) <= 1) {
19699 1 : i1 = 30;
19700 1 : break;
19701 1 : }
19702 1 : }
19703 1 : if ((i1 | 0) == 10) {
19704 1 : _luaG_concaterror(i7, i14, i13);
19705 1 : } else if ((i1 | 0) == 24) {
19706 1 : _luaG_runerror(i7, 9e3, i9);
19707 1 : } else if ((i1 | 0) == 30) {
19708 1 : STACKTOP = i5;
19709 1 : return;
19710 1 : }
19711 1 : }
19712 1 : function _str_gsub(i1) {
19713 0 : i1 = i1 | 0;
19714 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0, i26 = 0, i27 = 0, i28 = 0;
19715 0 : i3 = STACKTOP;
19716 0 : STACKTOP = STACKTOP + 1344 | 0;
19717 0 : i4 = i3;
19718 0 : i5 = i3 + 1336 | 0;
19719 0 : i14 = i3 + 1332 | 0;
19720 0 : i10 = i3 + 1328 | 0;
19721 0 : i6 = i3 + 1048 | 0;
19722 0 : i2 = i3 + 8 | 0;
19723 0 : i20 = _luaL_checklstring(i1, 1, i14) | 0;
19724 0 : i13 = _luaL_checklstring(i1, 2, i10) | 0;
19725 0 : i8 = _lua_type(i1, 3) | 0;
19726 0 : i9 = _luaL_optinteger(i1, 4, (HEAP32[i14 >> 2] | 0) + 1 | 0) | 0;
19727 0 : i7 = (HEAP8[i13] | 0) == 94;
19728 0 : if (!((i8 + -3 | 0) >>> 0 < 2 | (i8 | 0) == 6 | (i8 | 0) == 5)) {
19729 0 : _luaL_argerror(i1, 3, 7528) | 0;
19730 0 : }
19731 0 : _luaL_buffinit(i1, i2);
19732 0 : if (i7) {
19733 0 : i15 = (HEAP32[i10 >> 2] | 0) + -1 | 0;
19734 0 : HEAP32[i10 >> 2] = i15;
19735 0 : i13 = i13 + 1 | 0;
19736 0 : } else {
19737 0 : i15 = HEAP32[i10 >> 2] | 0;
19738 0 : }
19739 0 : i11 = i6 + 16 | 0;
19740 0 : HEAP32[i11 >> 2] = i1;
19741 0 : HEAP32[i6 >> 2] = 200;
19742 0 : i12 = i6 + 4 | 0;
19743 0 : HEAP32[i12 >> 2] = i20;
19744 0 : i10 = i6 + 8 | 0;
19745 0 : HEAP32[i10 >> 2] = i20 + (HEAP32[i14 >> 2] | 0);
19746 0 : HEAP32[i6 + 12 >> 2] = i13 + i15;
19747 0 : i14 = i6 + 20 | 0;
19748 0 : i15 = i2 + 8 | 0;
19749 0 : i18 = i2 + 4 | 0;
19750 0 : i16 = i6 + 28 | 0;
19751 0 : i17 = i6 + 24 | 0;
19752 0 : i22 = 0;
19753 0 : while (1) {
19754 0 : if (!(i22 >>> 0 < i9 >>> 0)) {
19755 0 : i19 = 48;
19756 0 : break;
19757 0 : }
19758 0 : HEAP32[i14 >> 2] = 0;
19759 0 : i21 = _match(i6, i20, i13) | 0;
19760 0 : if ((i21 | 0) != 0) {
19761 0 : i22 = i22 + 1 | 0;
19762 0 : i23 = HEAP32[i11 >> 2] | 0;
19763 0 : if ((i8 | 0) == 5) {
19764 0 : do {
19765 0 : if ((HEAP32[i14 >> 2] | 0) > 0) {
19766 0 : i24 = HEAP32[i16 >> 2] | 0;
19767 0 : if (!((i24 | 0) == -1)) {
19768 0 : i25 = HEAP32[i17 >> 2] | 0;
19769 0 : if ((i24 | 0) == -2) {
19770 0 : _lua_pushinteger(i23, i25 + 1 - (HEAP32[i12 >> 2] | 0) | 0);
19771 0 : break;
19772 0 : } else {
19773 0 : i19 = i23;
19774 0 : }
19775 0 : } else {
19776 0 : _luaL_error(i23, 7248, i4) | 0;
19777 0 : i19 = HEAP32[i11 >> 2] | 0;
19778 0 : i25 = HEAP32[i17 >> 2] | 0;
19779 0 : }
19780 0 : _lua_pushlstring(i19, i25, i24) | 0;
19781 0 : } else {
19782 0 : _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
19783 0 : }
19784 0 : } while (0);
19785 0 : _lua_gettable(i23, 3);
19786 0 : i19 = 37;
19787 0 : } else if ((i8 | 0) != 6) {
19788 0 : i24 = _lua_tolstring(i23, 3, i5) | 0;
19789 0 : if ((HEAP32[i5 >> 2] | 0) != 0) {
19790 0 : i23 = i21 - i20 | 0;
19791 0 : i25 = 0;
19792 0 : do {
19793 0 : i26 = i24 + i25 | 0;
19794 0 : i27 = HEAP8[i26] | 0;
19795 0 : do {
19796 0 : if (i27 << 24 >> 24 == 37) {
19797 0 : i25 = i25 + 1 | 0;
19798 0 : i26 = i24 + i25 | 0;
19799 0 : i28 = HEAP8[i26] | 0;
19800 0 : i27 = i28 << 24 >> 24;
19801 0 : if (((i28 & 255) + -48 | 0) >>> 0 < 10) {
19802 0 : if (i28 << 24 >> 24 == 48) {
19803 0 : _luaL_addlstring(i2, i20, i23);
19804 0 : break;
19805 0 : } else {
19806 0 : _push_onecapture(i6, i27 + -49 | 0, i20, i21);
19807 0 : _luaL_addvalue(i2);
19808 0 : break;
19809 0 : }
19810 0 : }
19811 0 : if (!(i28 << 24 >> 24 == 37)) {
19812 0 : i28 = HEAP32[i11 >> 2] | 0;
19813 0 : HEAP32[i4 >> 2] = 37;
19814 0 : _luaL_error(i28, 7600, i4) | 0;
19815 0 : }
19816 0 : i27 = HEAP32[i15 >> 2] | 0;
19817 0 : if (!(i27 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
19818 0 : _luaL_prepbuffsize(i2, 1) | 0;
19819 0 : i27 = HEAP32[i15 >> 2] | 0;
19820 0 : }
19821 0 : i28 = HEAP8[i26] | 0;
19822 0 : HEAP32[i15 >> 2] = i27 + 1;
19823 0 : HEAP8[(HEAP32[i2 >> 2] | 0) + i27 | 0] = i28;
19824 0 : } else {
19825 0 : i28 = HEAP32[i15 >> 2] | 0;
19826 0 : if (!(i28 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
19827 0 : _luaL_prepbuffsize(i2, 1) | 0;
19828 0 : i28 = HEAP32[i15 >> 2] | 0;
19829 0 : i27 = HEAP8[i26] | 0;
19830 0 : }
19831 0 : HEAP32[i15 >> 2] = i28 + 1;
19832 0 : HEAP8[(HEAP32[i2 >> 2] | 0) + i28 | 0] = i27;
19833 0 : }
19834 0 : } while (0);
19835 0 : i25 = i25 + 1 | 0;
19836 0 : } while (i25 >>> 0 < (HEAP32[i5 >> 2] | 0) >>> 0);
19837 0 : }
19838 0 : } else {
19839 0 : _lua_pushvalue(i23, 3);
19840 0 : i19 = HEAP32[i14 >> 2] | 0;
19841 0 : i19 = (i19 | 0) != 0 | (i20 | 0) == 0 ? i19 : 1;
19842 0 : _luaL_checkstack(HEAP32[i11 >> 2] | 0, i19, 7200);
19843 0 : if ((i19 | 0) > 0) {
19844 0 : i24 = 0;
19845 0 : do {
19846 0 : _push_onecapture(i6, i24, i20, i21);
19847 0 : i24 = i24 + 1 | 0;
19848 0 : } while ((i24 | 0) != (i19 | 0));
19849 0 : }
19850 0 : _lua_callk(i23, i19, 1, 0, 0);
19851 0 : i19 = 37;
19852 0 : }
19853 0 : if ((i19 | 0) == 37) {
19854 0 : i19 = 0;
19855 0 : if ((_lua_toboolean(i23, -1) | 0) != 0) {
19856 0 : if ((_lua_isstring(i23, -1) | 0) == 0) {
19857 0 : HEAP32[i4 >> 2] = _lua_typename(i23, _lua_type(i23, -1) | 0) | 0;
19858 0 : _luaL_error(i23, 7560, i4) | 0;
19859 0 : }
19860 0 : } else {
19861 0 : _lua_settop(i23, -2);
19862 0 : _lua_pushlstring(i23, i20, i21 - i20 | 0) | 0;
19863 0 : }
19864 0 : _luaL_addvalue(i2);
19865 0 : }
19866 0 : if (i21 >>> 0 > i20 >>> 0) {
19867 0 : i20 = i21;
19868 0 : } else {
19869 0 : i19 = 43;
19870 0 : }
19871 0 : } else {
19872 0 : i19 = 43;
19873 0 : }
19874 0 : if ((i19 | 0) == 43) {
19875 0 : i19 = 0;
19876 0 : if (!(i20 >>> 0 < (HEAP32[i10 >> 2] | 0) >>> 0)) {
19877 0 : i19 = 48;
19878 0 : break;
19879 0 : }
19880 0 : i21 = HEAP32[i15 >> 2] | 0;
19881 0 : if (!(i21 >>> 0 < (HEAP32[i18 >> 2] | 0) >>> 0)) {
19882 0 : _luaL_prepbuffsize(i2, 1) | 0;
19883 0 : i21 = HEAP32[i15 >> 2] | 0;
19884 0 : }
19885 0 : i28 = HEAP8[i20] | 0;
19886 0 : HEAP32[i15 >> 2] = i21 + 1;
19887 0 : HEAP8[(HEAP32[i2 >> 2] | 0) + i21 | 0] = i28;
19888 0 : i20 = i20 + 1 | 0;
19889 0 : }
19890 0 : if (i7) {
19891 0 : i19 = 48;
19892 0 : break;
19893 0 : }
19894 0 : }
19895 0 : if ((i19 | 0) == 48) {
19896 0 : _luaL_addlstring(i2, i20, (HEAP32[i10 >> 2] | 0) - i20 | 0);
19897 0 : _luaL_pushresult(i2);
19898 0 : _lua_pushinteger(i1, i22);
19899 0 : STACKTOP = i3;
19900 0 : return 2;
19901 0 : }
19902 0 : return 0;
19903 1 : }
19904 2 : function _constructor(i11, i13) {
19905 2 : i11 = i11 | 0;
19906 2 : i13 = i13 | 0;
19907 2 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0;
19908 2 : i5 = STACKTOP;
19909 2 : STACKTOP = STACKTOP + 64 | 0;
19910 2 : i10 = i5 + 40 | 0;
19911 2 : i8 = i5;
19912 2 : i12 = i11 + 48 | 0;
19913 2 : i6 = HEAP32[i12 >> 2] | 0;
19914 2 : i9 = HEAP32[i11 + 4 >> 2] | 0;
19915 2 : i2 = _luaK_codeABC(i6, 11, 0, 0, 0) | 0;
19916 2 : i7 = i8 + 36 | 0;
19917 2 : HEAP32[i7 >> 2] = 0;
19918 2 : i4 = i8 + 28 | 0;
19919 2 : HEAP32[i4 >> 2] = 0;
19920 2 : i3 = i8 + 32 | 0;
19921 2 : HEAP32[i3 >> 2] = 0;
19922 2 : i1 = i8 + 24 | 0;
19923 2 : HEAP32[i1 >> 2] = i13;
19924 2 : HEAP32[i13 + 16 >> 2] = -1;
19925 2 : HEAP32[i13 + 20 >> 2] = -1;
19926 2 : HEAP32[i13 >> 2] = 11;
19927 2 : HEAP32[i13 + 8 >> 2] = i2;
19928 2 : HEAP32[i8 + 16 >> 2] = -1;
19929 2 : HEAP32[i8 + 20 >> 2] = -1;
19930 2 : HEAP32[i8 >> 2] = 0;
19931 2 : HEAP32[i8 + 8 >> 2] = 0;
19932 2 : _luaK_exp2nextreg(HEAP32[i12 >> 2] | 0, i13);
19933 2 : i13 = i11 + 16 | 0;
19934 2 : if ((HEAP32[i13 >> 2] | 0) != 123) {
19935 2 : _error_expected(i11, 123);
19936 2 : }
19937 2 : _luaX_next(i11);
19938 2 : L4 : do {
19939 2 : if ((HEAP32[i13 >> 2] | 0) != 125) {
19940 2 : L5 : while (1) {
19941 2 : if ((HEAP32[i8 >> 2] | 0) != 0 ? (_luaK_exp2nextreg(i6, i8), HEAP32[i8 >> 2] = 0, (HEAP32[i7 >> 2] | 0) == 50) : 0) {
19942 2 : _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, 50);
19943 2 : HEAP32[i7 >> 2] = 0;
19944 2 : }
19945 2 : i14 = HEAP32[i13 >> 2] | 0;
19946 2 : do {
19947 2 : if ((i14 | 0) == 288) {
19948 2 : if ((_luaX_lookahead(i11) | 0) == 61) {
19949 2 : _recfield(i11, i8);
19950 2 : break;
19951 2 : }
19952 2 : _subexpr(i11, i8, 0) | 0;
19953 2 : i14 = HEAP32[i12 >> 2] | 0;
19954 2 : i15 = HEAP32[i3 >> 2] | 0;
19955 2 : if ((i15 | 0) > 2147483645) {
19956 2 : i12 = 10;
19957 2 : break L5;
19958 2 : }
19959 2 : HEAP32[i3 >> 2] = i15 + 1;
19960 2 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
19961 2 : } else if ((i14 | 0) == 91) {
19962 2 : _recfield(i11, i8);
19963 2 : } else {
19964 2 : _subexpr(i11, i8, 0) | 0;
19965 2 : i14 = HEAP32[i12 >> 2] | 0;
19966 2 : i15 = HEAP32[i3 >> 2] | 0;
19967 2 : if ((i15 | 0) > 2147483645) {
19968 2 : i12 = 17;
19969 2 : break L5;
19970 2 : }
19971 2 : HEAP32[i3 >> 2] = i15 + 1;
19972 2 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
19973 2 : }
19974 2 : } while (0);
19975 2 : i14 = HEAP32[i13 >> 2] | 0;
19976 2 : if ((i14 | 0) == 44) {
19977 2 : _luaX_next(i11);
19978 2 : } else if ((i14 | 0) == 59) {
19979 2 : _luaX_next(i11);
19980 2 : } else {
19981 2 : break L4;
19982 2 : }
19983 2 : if ((HEAP32[i13 >> 2] | 0) == 125) {
19984 2 : break L4;
19985 2 : }
19986 2 : }
19987 2 : if ((i12 | 0) == 10) {
19988 2 : i12 = i14 + 12 | 0;
19989 2 : i13 = HEAP32[(HEAP32[i12 >> 2] | 0) + 52 >> 2] | 0;
19990 2 : i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
19991 2 : if ((i14 | 0) == 0) {
19992 2 : i16 = 6552;
19993 2 : HEAP32[i10 >> 2] = 6528;
19994 2 : i15 = i10 + 4 | 0;
19995 2 : HEAP32[i15 >> 2] = 2147483645;
19996 2 : i15 = i10 + 8 | 0;
19997 2 : HEAP32[i15 >> 2] = i16;
19998 2 : i15 = _luaO_pushfstring(i13, 6592, i10) | 0;
19999 2 : i16 = HEAP32[i12 >> 2] | 0;
20000 2 : _luaX_syntaxerror(i16, i15);
20001 2 : }
20002 2 : HEAP32[i10 >> 2] = i14;
20003 2 : i15 = _luaO_pushfstring(i13, 6568, i10) | 0;
20004 2 : HEAP32[i10 >> 2] = 6528;
20005 2 : i16 = i10 + 4 | 0;
20006 2 : HEAP32[i16 >> 2] = 2147483645;
20007 2 : i16 = i10 + 8 | 0;
20008 2 : HEAP32[i16 >> 2] = i15;
20009 2 : i16 = _luaO_pushfstring(i13, 6592, i10) | 0;
20010 2 : i15 = HEAP32[i12 >> 2] | 0;
20011 2 : _luaX_syntaxerror(i15, i16);
20012 2 : } else if ((i12 | 0) == 17) {
20013 2 : i13 = i14 + 12 | 0;
20014 2 : i12 = HEAP32[(HEAP32[i13 >> 2] | 0) + 52 >> 2] | 0;
20015 2 : i14 = HEAP32[(HEAP32[i14 >> 2] | 0) + 64 >> 2] | 0;
20016 2 : if ((i14 | 0) == 0) {
20017 2 : i15 = 6552;
20018 2 : HEAP32[i10 >> 2] = 6528;
20019 2 : i16 = i10 + 4 | 0;
20020 2 : HEAP32[i16 >> 2] = 2147483645;
20021 2 : i16 = i10 + 8 | 0;
20022 2 : HEAP32[i16 >> 2] = i15;
20023 2 : i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
20024 2 : i15 = HEAP32[i13 >> 2] | 0;
20025 2 : _luaX_syntaxerror(i15, i16);
20026 2 : }
20027 2 : HEAP32[i10 >> 2] = i14;
20028 2 : i15 = _luaO_pushfstring(i12, 6568, i10) | 0;
20029 2 : HEAP32[i10 >> 2] = 6528;
20030 2 : i16 = i10 + 4 | 0;
20031 2 : HEAP32[i16 >> 2] = 2147483645;
20032 2 : i16 = i10 + 8 | 0;
20033 2 : HEAP32[i16 >> 2] = i15;
20034 2 : i16 = _luaO_pushfstring(i12, 6592, i10) | 0;
20035 2 : i15 = HEAP32[i13 >> 2] | 0;
20036 2 : _luaX_syntaxerror(i15, i16);
20037 2 : }
20038 2 : }
20039 2 : } while (0);
20040 2 : _check_match(i11, 125, 123, i9);
20041 2 : i9 = HEAP32[i7 >> 2] | 0;
20042 2 : do {
20043 2 : if ((i9 | 0) != 0) {
20044 2 : i10 = HEAP32[i8 >> 2] | 0;
20045 2 : if ((i10 | 0) != 0) if ((i10 | 0) == 13 | (i10 | 0) == 12) {
20046 2 : _luaK_setreturns(i6, i8, -1);
20047 2 : _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, -1);
20048 2 : HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + -1;
20049 2 : break;
20050 2 : } else {
20051 2 : _luaK_exp2nextreg(i6, i8);
20052 2 : i9 = HEAP32[i7 >> 2] | 0;
20053 2 : }
20054 2 : _luaK_setlist(i6, HEAP32[(HEAP32[i1 >> 2] | 0) + 8 >> 2] | 0, HEAP32[i3 >> 2] | 0, i9);
20055 2 : }
20056 2 : } while (0);
20057 2 : i16 = HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] & 8388607;
20058 2 : i16 = (_luaO_int2fb(HEAP32[i3 >> 2] | 0) | 0) << 23 | i16;
20059 2 : HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
20060 2 : i16 = (_luaO_int2fb(HEAP32[i4 >> 2] | 0) | 0) << 14 & 8372224 | i16 & -8372225;
20061 2 : HEAP32[(HEAP32[(HEAP32[i6 >> 2] | 0) + 12 >> 2] | 0) + (i2 << 2) >> 2] = i16;
20062 2 : STACKTOP = i5;
20063 2 : return;
20064 2 : }
20065 1 : function _luaK_prefix(i4, i14, i7, i13) {
20066 1 : i4 = i4 | 0;
20067 1 : i14 = i14 | 0;
20068 1 : i7 = i7 | 0;
20069 1 : i13 = i13 | 0;
20070 1 : var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
20071 1 : i1 = STACKTOP;
20072 1 : STACKTOP = STACKTOP + 32 | 0;
20073 1 : i12 = i1;
20074 1 : HEAP32[i12 + 20 >> 2] = -1;
20075 1 : HEAP32[i12 + 16 >> 2] = -1;
20076 1 : HEAP32[i12 >> 2] = 5;
20077 1 : HEAPF64[i12 + 8 >> 3] = 0.0;
20078 1 : if ((i14 | 0) == 1) {
20079 1 : _luaK_dischargevars(i4, i7);
20080 1 : switch (HEAP32[i7 >> 2] | 0) {
20081 1 : case 2:
20082 1 : case 5:
20083 1 : case 4:
20084 1 : {
20085 1 : HEAP32[i7 >> 2] = 3;
20086 1 : break;
20087 1 : }
20088 1 : case 10:
20089 1 : {
20090 1 : i13 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
20091 1 : i12 = HEAP32[i7 + 8 >> 2] | 0;
20092 1 : i10 = i13 + (i12 << 2) | 0;
20093 1 : if (!((i12 | 0) > 0 ? (i11 = i13 + (i12 + -1 << 2) | 0, i9 = HEAP32[i11 >> 2] | 0, (HEAP8[5584 + (i9 & 63) | 0] | 0) < 0) : 0)) {
20094 1 : i11 = i10;
20095 1 : i9 = HEAP32[i10 >> 2] | 0;
20096 1 : }
20097 1 : HEAP32[i11 >> 2] = ((i9 & 16320 | 0) == 0) << 6 | i9 & -16321;
20098 1 : break;
20099 1 : }
20100 1 : case 6:
20101 1 : {
20102 1 : i8 = 25;
20103 1 : break;
20104 1 : }
20105 1 : case 3:
20106 1 : case 1:
20107 1 : {
20108 1 : HEAP32[i7 >> 2] = 2;
20109 1 : break;
20110 1 : }
20111 1 : case 11:
20112 1 : {
20113 1 : i12 = i4 + 48 | 0;
20114 1 : i8 = HEAP8[i12] | 0;
20115 1 : i11 = (i8 & 255) + 1 | 0;
20116 1 : i9 = (HEAP32[i4 >> 2] | 0) + 78 | 0;
20117 1 : do {
20118 1 : if (i11 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
20119 1 : if (i11 >>> 0 > 249) {
20120 1 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10536);
20121 1 : } else {
20122 1 : HEAP8[i9] = i11;
20123 1 : i10 = HEAP8[i12] | 0;
20124 1 : break;
20125 1 : }
20126 1 : } else {
20127 1 : i10 = i8;
20128 1 : }
20129 1 : } while (0);
20130 1 : i14 = (i10 & 255) + 1 | 0;
20131 1 : HEAP8[i12] = i14;
20132 1 : _discharge2reg(i4, i7, (i14 & 255) + -1 | 0);
20133 1 : if ((HEAP32[i7 >> 2] | 0) == 6) {
20134 1 : i8 = 25;
20135 1 : } else {
20136 1 : i9 = i7 + 8 | 0;
20137 1 : i8 = 28;
20138 1 : }
20139 1 : break;
20140 1 : }
20141 1 : default:
20142 1 : {}
20143 1 : }
20144 1 : if ((i8 | 0) == 25) {
20145 1 : i8 = i7 + 8 | 0;
20146 1 : i9 = HEAP32[i8 >> 2] | 0;
20147 1 : if ((i9 & 256 | 0) == 0 ? (HEAPU8[i4 + 46 | 0] | 0) <= (i9 | 0) : 0) {
20148 1 : i9 = i4 + 48 | 0;
20149 1 : HEAP8[i9] = (HEAP8[i9] | 0) + -1 << 24 >> 24;
20150 1 : i9 = i8;
20151 1 : i8 = 28;
20152 1 : } else {
20153 1 : i9 = i8;
20154 1 : i8 = 28;
20155 1 : }
20156 1 : }
20157 1 : if ((i8 | 0) == 28) {
20158 1 : HEAP32[i9 >> 2] = _luaK_code(i4, HEAP32[i9 >> 2] << 23 | 20) | 0;
20159 1 : HEAP32[i7 >> 2] = 11;
20160 1 : }
20161 1 : i14 = i7 + 20 | 0;
20162 1 : i8 = HEAP32[i14 >> 2] | 0;
20163 1 : i7 = i7 + 16 | 0;
20164 1 : i9 = HEAP32[i7 >> 2] | 0;
20165 1 : HEAP32[i14 >> 2] = i9;
20166 1 : HEAP32[i7 >> 2] = i8;
20167 1 : if (!((i9 | 0) == -1)) {
20168 1 : i8 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
20169 1 : do {
20170 1 : i12 = i8 + (i9 << 2) | 0;
20171 1 : if ((i9 | 0) > 0 ? (i5 = i8 + (i9 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0) {
20172 1 : i10 = i5;
20173 1 : i11 = i6;
20174 1 : } else {
20175 1 : i10 = i12;
20176 1 : i11 = HEAP32[i12 >> 2] | 0;
20177 1 : }
20178 1 : if ((i11 & 63 | 0) == 28) {
20179 1 : HEAP32[i10 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
20180 1 : }
20181 1 : i10 = ((HEAP32[i12 >> 2] | 0) >>> 14) + -131071 | 0;
20182 1 : if ((i10 | 0) == -1) {
20183 1 : break;
20184 1 : }
20185 1 : i9 = i9 + 1 + i10 | 0;
20186 1 : } while (!((i9 | 0) == -1));
20187 1 : i8 = HEAP32[i7 >> 2] | 0;
20188 1 : }
20189 1 : if ((i8 | 0) == -1) {
20190 1 : STACKTOP = i1;
20191 1 : return;
20192 1 : }
20193 1 : i4 = HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0;
20194 1 : while (1) {
20195 1 : i6 = i4 + (i8 << 2) | 0;
20196 1 : if ((i8 | 0) > 0 ? (i2 = i4 + (i8 + -1 << 2) | 0, i3 = HEAP32[i2 >> 2] | 0, (HEAP8[5584 + (i3 & 63) | 0] | 0) < 0) : 0) {
20197 1 : i7 = i2;
20198 1 : i5 = i3;
20199 1 : } else {
20200 1 : i7 = i6;
20201 1 : i5 = HEAP32[i6 >> 2] | 0;
20202 1 : }
20203 1 : if ((i5 & 63 | 0) == 28) {
20204 1 : HEAP32[i7 >> 2] = i5 & 8372224 | i5 >>> 23 << 6 | 27;
20205 1 : }
20206 1 : i5 = ((HEAP32[i6 >> 2] | 0) >>> 14) + -131071 | 0;
20207 1 : if ((i5 | 0) == -1) {
20208 1 : i8 = 54;
20209 1 : break;
20210 1 : }
20211 1 : i8 = i8 + 1 + i5 | 0;
20212 1 : if ((i8 | 0) == -1) {
20213 1 : i8 = 54;
20214 1 : break;
20215 1 : }
20216 1 : }
20217 1 : if ((i8 | 0) == 54) {
20218 1 : STACKTOP = i1;
20219 1 : return;
20220 1 : }
20221 1 : } else if ((i14 | 0) == 0) {
20222 1 : if (((HEAP32[i7 >> 2] | 0) == 5 ? (HEAP32[i7 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i7 + 20 >> 2] | 0) == -1 : 0) {
20223 1 : i14 = i7 + 8 | 0;
20224 1 : HEAPF64[i14 >> 3] = -+HEAPF64[i14 >> 3];
20225 1 : STACKTOP = i1;
20226 1 : return;
20227 1 : }
20228 1 : _luaK_dischargevars(i4, i7);
20229 1 : if ((HEAP32[i7 >> 2] | 0) == 6) {
20230 1 : i2 = HEAP32[i7 + 8 >> 2] | 0;
20231 1 : if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
20232 1 : if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
20233 1 : i8 = 10;
20234 1 : } else {
20235 1 : _exp2reg(i4, i7, i2);
20236 1 : }
20237 1 : }
20238 1 : } else {
20239 1 : i8 = 10;
20240 1 : }
20241 1 : if ((i8 | 0) == 10) {
20242 1 : _luaK_exp2nextreg(i4, i7);
20243 1 : }
20244 1 : _codearith(i4, 19, i7, i12, i13);
20245 1 : STACKTOP = i1;
20246 1 : return;
20247 1 : } else if ((i14 | 0) == 2) {
20248 1 : _luaK_dischargevars(i4, i7);
20249 1 : if ((HEAP32[i7 >> 2] | 0) == 6) {
20250 1 : i2 = HEAP32[i7 + 8 >> 2] | 0;
20251 1 : if ((HEAP32[i7 + 16 >> 2] | 0) != (HEAP32[i7 + 20 >> 2] | 0)) {
20252 1 : if ((i2 | 0) < (HEAPU8[i4 + 46 | 0] | 0)) {
20253 1 : i8 = 52;
20254 1 : } else {
20255 1 : _exp2reg(i4, i7, i2);
20256 1 : }
20257 1 : }
20258 1 : } else {
20259 1 : i8 = 52;
20260 1 : }
20261 1 : if ((i8 | 0) == 52) {
20262 1 : _luaK_exp2nextreg(i4, i7);
20263 1 : }
20264 1 : _codearith(i4, 21, i7, i12, i13);
20265 1 : STACKTOP = i1;
20266 1 : return;
20267 1 : } else {
20268 1 : STACKTOP = i1;
20269 1 : return;
20270 1 : }
20271 1 : }
20272 105 : function _subexpr(i6, i3, i7) {
20273 105 : i6 = i6 | 0;
20274 105 : i3 = i3 | 0;
20275 105 : i7 = i7 | 0;
20276 105 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
20277 105 : i2 = STACKTOP;
20278 105 : STACKTOP = STACKTOP + 48 | 0;
20279 105 : i11 = i2 + 24 | 0;
20280 105 : i5 = i2;
20281 105 : i4 = i6 + 48 | 0;
20282 105 : i9 = HEAP32[i4 >> 2] | 0;
20283 105 : i1 = i6 + 52 | 0;
20284 105 : i12 = (HEAP32[i1 >> 2] | 0) + 38 | 0;
20285 105 : i13 = (HEAP16[i12 >> 1] | 0) + 1 << 16 >> 16;
20286 105 : HEAP16[i12 >> 1] = i13;
20287 105 : if ((i13 & 65535) > 200) {
20288 105 : i10 = i9 + 12 | 0;
20289 105 : i12 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
20290 105 : i13 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
20291 105 : if ((i13 | 0) == 0) {
20292 105 : i15 = 6552;
20293 105 : HEAP32[i11 >> 2] = 6360;
20294 105 : i14 = i11 + 4 | 0;
20295 105 : HEAP32[i14 >> 2] = 200;
20296 105 : i14 = i11 + 8 | 0;
20297 105 : HEAP32[i14 >> 2] = i15;
20298 105 : i14 = _luaO_pushfstring(i12, 6592, i11) | 0;
20299 105 : i15 = HEAP32[i10 >> 2] | 0;
20300 105 : _luaX_syntaxerror(i15, i14);
20301 105 : }
20302 105 : HEAP32[i11 >> 2] = i13;
20303 105 : i14 = _luaO_pushfstring(i12, 6568, i11) | 0;
20304 105 : HEAP32[i11 >> 2] = 6360;
20305 105 : i15 = i11 + 4 | 0;
20306 105 : HEAP32[i15 >> 2] = 200;
20307 105 : i15 = i11 + 8 | 0;
20308 105 : HEAP32[i15 >> 2] = i14;
20309 105 : i15 = _luaO_pushfstring(i12, 6592, i11) | 0;
20310 105 : i14 = HEAP32[i10 >> 2] | 0;
20311 105 : _luaX_syntaxerror(i14, i15);
20312 105 : }
20313 105 : i10 = i6 + 16 | 0;
20314 105 : L8 : do {
20315 105 : switch (HEAP32[i10 >> 2] | 0) {
20316 105 : case 287:
20317 105 : {
20318 105 : HEAP32[i3 + 16 >> 2] = -1;
20319 105 : HEAP32[i3 + 20 >> 2] = -1;
20320 105 : HEAP32[i3 >> 2] = 5;
20321 105 : HEAP32[i3 + 8 >> 2] = 0;
20322 105 : HEAPF64[i3 + 8 >> 3] = +HEAPF64[i6 + 24 >> 3];
20323 105 : i8 = 20;
20324 105 : break;
20325 105 : }
20326 105 : case 271:
20327 105 : {
20328 105 : i9 = 1;
20329 105 : i8 = 8;
20330 105 : break;
20331 105 : }
20332 105 : case 289:
20333 105 : {
20334 105 : i8 = _luaK_stringK(i9, HEAP32[i6 + 24 >> 2] | 0) | 0;
20335 105 : HEAP32[i3 + 16 >> 2] = -1;
20336 105 : HEAP32[i3 + 20 >> 2] = -1;
20337 105 : HEAP32[i3 >> 2] = 4;
20338 105 : HEAP32[i3 + 8 >> 2] = i8;
20339 105 : i8 = 20;
20340 105 : break;
20341 105 : }
20342 105 : case 265:
20343 105 : {
20344 105 : _luaX_next(i6);
20345 105 : _body(i6, i3, 0, HEAP32[i6 + 4 >> 2] | 0);
20346 105 : break;
20347 105 : }
20348 105 : case 276:
20349 105 : {
20350 105 : HEAP32[i3 + 16 >> 2] = -1;
20351 105 : HEAP32[i3 + 20 >> 2] = -1;
20352 105 : HEAP32[i3 >> 2] = 2;
20353 105 : HEAP32[i3 + 8 >> 2] = 0;
20354 105 : i8 = 20;
20355 105 : break;
20356 105 : }
20357 105 : case 45:
20358 105 : {
20359 105 : i9 = 0;
20360 105 : i8 = 8;
20361 105 : break;
20362 105 : }
20363 105 : case 35:
20364 105 : {
20365 105 : i9 = 2;
20366 105 : i8 = 8;
20367 105 : break;
20368 105 : }
20369 105 : case 123:
20370 105 : {
20371 105 : _constructor(i6, i3);
20372 105 : break;
20373 105 : }
20374 105 : case 263:
20375 105 : {
20376 105 : HEAP32[i3 + 16 >> 2] = -1;
20377 105 : HEAP32[i3 + 20 >> 2] = -1;
20378 105 : HEAP32[i3 >> 2] = 3;
20379 105 : HEAP32[i3 + 8 >> 2] = 0;
20380 105 : i8 = 20;
20381 105 : break;
20382 105 : }
20383 105 : case 280:
20384 105 : {
20385 105 : if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 77 | 0] | 0) == 0) {
20386 105 : _luaX_syntaxerror(i6, 6408);
20387 105 : } else {
20388 105 : i8 = _luaK_codeABC(i9, 38, 0, 1, 0) | 0;
20389 105 : HEAP32[i3 + 16 >> 2] = -1;
20390 105 : HEAP32[i3 + 20 >> 2] = -1;
20391 105 : HEAP32[i3 >> 2] = 13;
20392 105 : HEAP32[i3 + 8 >> 2] = i8;
20393 105 : i8 = 20;
20394 105 : break L8;
20395 105 : }
20396 105 : break;
20397 105 : }
20398 105 : case 270:
20399 105 : {
20400 105 : HEAP32[i3 + 16 >> 2] = -1;
20401 105 : HEAP32[i3 + 20 >> 2] = -1;
20402 105 : HEAP32[i3 >> 2] = 1;
20403 105 : HEAP32[i3 + 8 >> 2] = 0;
20404 105 : i8 = 20;
20405 105 : break;
20406 105 : }
20407 105 : default:
20408 105 : {
20409 105 : _suffixedexp(i6, i3);
20410 105 : }
20411 105 : }
20412 105 : } while (0);
20413 105 : if ((i8 | 0) == 8) {
20414 105 : i15 = HEAP32[i6 + 4 >> 2] | 0;
20415 105 : _luaX_next(i6);
20416 105 : _subexpr(i6, i3, 8) | 0;
20417 105 : _luaK_prefix(HEAP32[i4 >> 2] | 0, i9, i3, i15);
20418 105 : } else if ((i8 | 0) == 20) {
20419 105 : _luaX_next(i6);
20420 105 : }
20421 105 : switch (HEAP32[i10 >> 2] | 0) {
20422 105 : case 257:
20423 105 : {
20424 105 : i9 = 13;
20425 105 : break;
20426 105 : }
20427 105 : case 272:
20428 105 : {
20429 105 : i9 = 14;
20430 105 : break;
20431 105 : }
20432 105 : case 47:
20433 105 : {
20434 105 : i9 = 3;
20435 105 : break;
20436 105 : }
20437 105 : case 37:
20438 105 : {
20439 105 : i9 = 4;
20440 105 : break;
20441 105 : }
20442 105 : case 43:
20443 105 : {
20444 105 : i9 = 0;
20445 105 : break;
20446 105 : }
20447 105 : case 284:
20448 105 : {
20449 105 : i9 = 10;
20450 105 : break;
20451 105 : }
20452 105 : case 281:
20453 105 : {
20454 105 : i9 = 7;
20455 105 : break;
20456 105 : }
20457 105 : case 62:
20458 105 : {
20459 105 : i9 = 11;
20460 105 : break;
20461 105 : }
20462 105 : case 282:
20463 105 : {
20464 105 : i9 = 12;
20465 105 : break;
20466 105 : }
20467 105 : case 45:
20468 105 : {
20469 105 : i9 = 1;
20470 105 : break;
20471 105 : }
20472 105 : case 42:
20473 105 : {
20474 105 : i9 = 2;
20475 105 : break;
20476 105 : }
20477 105 : case 60:
20478 105 : {
20479 105 : i9 = 8;
20480 105 : break;
20481 105 : }
20482 105 : case 283:
20483 105 : {
20484 105 : i9 = 9;
20485 105 : break;
20486 105 : }
20487 105 : case 94:
20488 105 : {
20489 105 : i9 = 5;
20490 105 : break;
20491 105 : }
20492 105 : case 279:
20493 105 : {
20494 105 : i9 = 6;
20495 105 : break;
20496 105 : }
20497 105 : default:
20498 105 : {
20499 105 : i15 = 15;
20500 105 : i14 = HEAP32[i1 >> 2] | 0;
20501 105 : i14 = i14 + 38 | 0;
20502 105 : i13 = HEAP16[i14 >> 1] | 0;
20503 105 : i13 = i13 + -1 << 16 >> 16;
20504 105 : HEAP16[i14 >> 1] = i13;
20505 105 : STACKTOP = i2;
20506 105 : return i15 | 0;
20507 105 : }
20508 105 : }
20509 105 : i8 = i6 + 4 | 0;
20510 105 : while (1) {
20511 105 : if ((HEAPU8[6376 + (i9 << 1) | 0] | 0) <= (i7 | 0)) {
20512 105 : i8 = 39;
20513 105 : break;
20514 105 : }
20515 105 : i15 = HEAP32[i8 >> 2] | 0;
20516 105 : _luaX_next(i6);
20517 105 : _luaK_infix(HEAP32[i4 >> 2] | 0, i9, i3);
20518 105 : i10 = _subexpr(i6, i5, HEAPU8[6377 + (i9 << 1) | 0] | 0) | 0;
20519 105 : _luaK_posfix(HEAP32[i4 >> 2] | 0, i9, i3, i5, i15);
20520 105 : if ((i10 | 0) == 15) {
20521 105 : i9 = 15;
20522 105 : i8 = 39;
20523 105 : break;
20524 105 : } else {
20525 105 : i9 = i10;
20526 105 : }
20527 105 : }
20528 105 : if ((i8 | 0) == 39) {
20529 105 : i15 = HEAP32[i1 >> 2] | 0;
20530 105 : i15 = i15 + 38 | 0;
20531 105 : i14 = HEAP16[i15 >> 1] | 0;
20532 105 : i14 = i14 + -1 << 16 >> 16;
20533 105 : HEAP16[i15 >> 1] = i14;
20534 105 : STACKTOP = i2;
20535 105 : return i9 | 0;
20536 105 : }
20537 105 : return 0;
20538 105 : }
20539 1 : function _luaV_lessequal(i5, i3, i2) {
20540 0 : i5 = i5 | 0;
20541 0 : i3 = i3 | 0;
20542 0 : i2 = i2 | 0;
20543 0 : var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
20544 0 : i1 = STACKTOP;
20545 0 : i4 = i3 + 8 | 0;
20546 0 : i7 = HEAP32[i4 >> 2] | 0;
20547 0 : if ((i7 | 0) == 3) {
20548 0 : if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
20549 0 : i9 = +HEAPF64[i3 >> 3] <= +HEAPF64[i2 >> 3] | 0;
20550 0 : STACKTOP = i1;
20551 0 : return i9 | 0;
20552 0 : }
20553 0 : } else {
20554 0 : if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
20555 0 : i3 = HEAP32[i3 >> 2] | 0;
20556 0 : i6 = HEAP32[i2 >> 2] | 0;
20557 0 : i4 = i3 + 16 | 0;
20558 0 : i5 = i6 + 16 | 0;
20559 0 : i7 = _strcmp(i4, i5) | 0;
20560 0 : L8 : do {
20561 0 : if ((i7 | 0) == 0) {
20562 0 : i2 = HEAP32[i3 + 12 >> 2] | 0;
20563 0 : i3 = HEAP32[i6 + 12 >> 2] | 0;
20564 0 : i6 = i5;
20565 0 : while (1) {
20566 0 : i5 = _strlen(i4 | 0) | 0;
20567 0 : i7 = (i5 | 0) == (i2 | 0);
20568 0 : if ((i5 | 0) == (i3 | 0)) {
20569 0 : break;
20570 0 : }
20571 0 : if (i7) {
20572 0 : i7 = -1;
20573 0 : break L8;
20574 0 : }
20575 0 : i5 = i5 + 1 | 0;
20576 0 : i4 = i4 + i5 | 0;
20577 0 : i6 = i6 + i5 | 0;
20578 0 : i7 = _strcmp(i4, i6) | 0;
20579 0 : if ((i7 | 0) == 0) {
20580 0 : i2 = i2 - i5 | 0;
20581 0 : i3 = i3 - i5 | 0;
20582 0 : } else {
20583 0 : break L8;
20584 0 : }
20585 0 : }
20586 0 : i7 = i7 & 1 ^ 1;
20587 0 : }
20588 0 : } while (0);
20589 0 : i9 = (i7 | 0) < 1 | 0;
20590 0 : STACKTOP = i1;
20591 0 : return i9 | 0;
20592 0 : }
20593 0 : }
20594 0 : i7 = i5 + 8 | 0;
20595 0 : i8 = HEAP32[i7 >> 2] | 0;
20596 0 : i9 = _luaT_gettmbyobj(i5, i3, 14) | 0;
20597 0 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
20598 0 : i9 = _luaT_gettmbyobj(i5, i2, 14) | 0;
20599 0 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
20600 0 : i8 = HEAP32[i7 >> 2] | 0;
20601 0 : i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
20602 0 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
20603 0 : i9 = _luaT_gettmbyobj(i5, i3, 13) | 0;
20604 0 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
20605 0 : _luaG_ordererror(i5, i3, i2);
20606 0 : } else {
20607 0 : i6 = i9;
20608 0 : }
20609 0 : } else {
20610 0 : i6 = i9;
20611 0 : }
20612 0 : i10 = i5 + 28 | 0;
20613 0 : i9 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
20614 0 : i8 = HEAP32[i7 >> 2] | 0;
20615 0 : HEAP32[i7 >> 2] = i8 + 16;
20616 0 : i13 = i6;
20617 0 : i11 = HEAP32[i13 + 4 >> 2] | 0;
20618 0 : i12 = i8;
20619 0 : HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
20620 0 : HEAP32[i12 + 4 >> 2] = i11;
20621 0 : HEAP32[i8 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
20622 0 : i8 = HEAP32[i7 >> 2] | 0;
20623 0 : HEAP32[i7 >> 2] = i8 + 16;
20624 0 : i12 = i2;
20625 0 : i11 = HEAP32[i12 + 4 >> 2] | 0;
20626 0 : i6 = i8;
20627 0 : HEAP32[i6 >> 2] = HEAP32[i12 >> 2];
20628 0 : HEAP32[i6 + 4 >> 2] = i11;
20629 0 : HEAP32[i8 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
20630 0 : i2 = HEAP32[i7 >> 2] | 0;
20631 0 : HEAP32[i7 >> 2] = i2 + 16;
20632 0 : i8 = i3;
20633 0 : i6 = HEAP32[i8 + 4 >> 2] | 0;
20634 0 : i3 = i2;
20635 0 : HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
20636 0 : HEAP32[i3 + 4 >> 2] = i6;
20637 0 : HEAP32[i2 + 8 >> 2] = HEAP32[i4 >> 2];
20638 0 : _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
20639 0 : i3 = HEAP32[i10 >> 2] | 0;
20640 0 : i2 = HEAP32[i7 >> 2] | 0;
20641 0 : i5 = i2 + -16 | 0;
20642 0 : HEAP32[i7 >> 2] = i5;
20643 0 : i6 = HEAP32[i5 + 4 >> 2] | 0;
20644 0 : i8 = i3 + i9 | 0;
20645 0 : HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
20646 0 : HEAP32[i8 + 4 >> 2] = i6;
20647 0 : HEAP32[i3 + (i9 + 8) >> 2] = HEAP32[i2 + -8 >> 2];
20648 0 : i3 = HEAP32[i7 >> 2] | 0;
20649 0 : i2 = HEAP32[i3 + 8 >> 2] | 0;
20650 0 : if ((i2 | 0) != 0) {
20651 0 : if ((i2 | 0) == 1) {
20652 0 : i2 = (HEAP32[i3 >> 2] | 0) != 0;
20653 0 : } else {
20654 0 : i2 = 1;
20655 0 : }
20656 0 : } else {
20657 0 : i2 = 0;
20658 0 : }
20659 0 : i13 = i2 & 1 ^ 1;
20660 0 : STACKTOP = i1;
20661 0 : return i13 | 0;
20662 0 : }
20663 0 : }
20664 0 : i10 = i5 + 28 | 0;
20665 0 : i13 = i8 - (HEAP32[i10 >> 2] | 0) | 0;
20666 0 : i11 = HEAP32[i7 >> 2] | 0;
20667 0 : HEAP32[i7 >> 2] = i11 + 16;
20668 0 : i6 = i9;
20669 0 : i8 = HEAP32[i6 + 4 >> 2] | 0;
20670 0 : i12 = i11;
20671 0 : HEAP32[i12 >> 2] = HEAP32[i6 >> 2];
20672 0 : HEAP32[i12 + 4 >> 2] = i8;
20673 0 : HEAP32[i11 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
20674 0 : i9 = HEAP32[i7 >> 2] | 0;
20675 0 : HEAP32[i7 >> 2] = i9 + 16;
20676 0 : i11 = i3;
20677 0 : i12 = HEAP32[i11 + 4 >> 2] | 0;
20678 0 : i3 = i9;
20679 0 : HEAP32[i3 >> 2] = HEAP32[i11 >> 2];
20680 0 : HEAP32[i3 + 4 >> 2] = i12;
20681 0 : HEAP32[i9 + 8 >> 2] = HEAP32[i4 >> 2];
20682 0 : i3 = HEAP32[i7 >> 2] | 0;
20683 0 : HEAP32[i7 >> 2] = i3 + 16;
20684 0 : i9 = i2;
20685 0 : i12 = HEAP32[i9 + 4 >> 2] | 0;
20686 0 : i11 = i3;
20687 0 : HEAP32[i11 >> 2] = HEAP32[i9 >> 2];
20688 0 : HEAP32[i11 + 4 >> 2] = i12;
20689 0 : HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
20690 0 : _luaD_call(i5, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
20691 0 : i2 = HEAP32[i10 >> 2] | 0;
20692 0 : i3 = HEAP32[i7 >> 2] | 0;
20693 0 : i10 = i3 + -16 | 0;
20694 0 : HEAP32[i7 >> 2] = i10;
20695 0 : i11 = HEAP32[i10 + 4 >> 2] | 0;
20696 0 : i12 = i2 + i13 | 0;
20697 0 : HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
20698 0 : HEAP32[i12 + 4 >> 2] = i11;
20699 0 : HEAP32[i2 + (i13 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
20700 0 : i2 = HEAP32[i7 >> 2] | 0;
20701 0 : i3 = HEAP32[i2 + 8 >> 2] | 0;
20702 0 : if ((i3 | 0) != 0) {
20703 0 : if ((i3 | 0) == 1) {
20704 0 : i2 = (HEAP32[i2 >> 2] | 0) != 0;
20705 0 : } else {
20706 0 : i2 = 1;
20707 0 : }
20708 0 : } else {
20709 0 : i2 = 0;
20710 0 : }
20711 0 : i13 = i2 & 1;
20712 0 : STACKTOP = i1;
20713 0 : return i13 | 0;
20714 1 : }
20715 48 : function ___udivmoddi4(i6, i8, i2, i4, i1) {
20716 48 : i6 = i6 | 0;
20717 48 : i8 = i8 | 0;
20718 48 : i2 = i2 | 0;
20719 48 : i4 = i4 | 0;
20720 48 : i1 = i1 | 0;
20721 48 : var i3 = 0, i5 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
20722 48 : i5 = i6;
20723 48 : i9 = i8;
20724 48 : i7 = i9;
20725 48 : i10 = i2;
20726 48 : i3 = i4;
20727 48 : i11 = i3;
20728 48 : if ((i7 | 0) == 0) {
20729 48 : i2 = (i1 | 0) != 0;
20730 48 : if ((i11 | 0) == 0) {
20731 48 : if (i2) {
20732 48 : HEAP32[i1 >> 2] = (i5 >>> 0) % (i10 >>> 0);
20733 48 : HEAP32[i1 + 4 >> 2] = 0;
20734 48 : }
20735 48 : i11 = 0;
20736 48 : i12 = (i5 >>> 0) / (i10 >>> 0) >>> 0;
20737 48 : return (tempRet0 = i11, i12) | 0;
20738 48 : } else {
20739 48 : if (!i2) {
20740 48 : i11 = 0;
20741 48 : i12 = 0;
20742 48 : return (tempRet0 = i11, i12) | 0;
20743 48 : }
20744 48 : HEAP32[i1 >> 2] = i6 | 0;
20745 48 : HEAP32[i1 + 4 >> 2] = i8 & 0;
20746 48 : i11 = 0;
20747 48 : i12 = 0;
20748 48 : return (tempRet0 = i11, i12) | 0;
20749 48 : }
20750 48 : }
20751 48 : i12 = (i11 | 0) == 0;
20752 48 : do {
20753 48 : if ((i10 | 0) != 0) {
20754 48 : if (!i12) {
20755 48 : i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
20756 48 : if (i10 >>> 0 <= 31) {
20757 48 : i11 = i10 + 1 | 0;
20758 48 : i12 = 31 - i10 | 0;
20759 48 : i8 = i10 - 31 >> 31;
20760 48 : i9 = i11;
20761 48 : i6 = i5 >>> (i11 >>> 0) & i8 | i7 << i12;
20762 48 : i8 = i7 >>> (i11 >>> 0) & i8;
20763 48 : i11 = 0;
20764 48 : i7 = i5 << i12;
20765 48 : break;
20766 48 : }
20767 48 : if ((i1 | 0) == 0) {
20768 48 : i11 = 0;
20769 48 : i12 = 0;
20770 48 : return (tempRet0 = i11, i12) | 0;
20771 48 : }
20772 48 : HEAP32[i1 >> 2] = i6 | 0;
20773 48 : HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
20774 48 : i11 = 0;
20775 48 : i12 = 0;
20776 48 : return (tempRet0 = i11, i12) | 0;
20777 48 : }
20778 48 : i11 = i10 - 1 | 0;
20779 48 : if ((i11 & i10 | 0) != 0) {
20780 48 : i12 = (_llvm_ctlz_i32(i10 | 0) | 0) + 33 - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
20781 48 : i15 = 64 - i12 | 0;
20782 48 : i10 = 32 - i12 | 0;
20783 48 : i13 = i10 >> 31;
20784 48 : i14 = i12 - 32 | 0;
20785 48 : i8 = i14 >> 31;
20786 48 : i9 = i12;
20787 48 : i6 = i10 - 1 >> 31 & i7 >>> (i14 >>> 0) | (i7 << i10 | i5 >>> (i12 >>> 0)) & i8;
20788 48 : i8 = i8 & i7 >>> (i12 >>> 0);
20789 48 : i11 = i5 << i15 & i13;
20790 48 : i7 = (i7 << i15 | i5 >>> (i14 >>> 0)) & i13 | i5 << i10 & i12 - 33 >> 31;
20791 48 : break;
20792 48 : }
20793 48 : if ((i1 | 0) != 0) {
20794 48 : HEAP32[i1 >> 2] = i11 & i5;
20795 48 : HEAP32[i1 + 4 >> 2] = 0;
20796 48 : }
20797 48 : if ((i10 | 0) == 1) {
20798 48 : i14 = i9 | i8 & 0;
20799 48 : i15 = i6 | 0 | 0;
20800 48 : return (tempRet0 = i14, i15) | 0;
20801 48 : } else {
20802 48 : i15 = _llvm_cttz_i32(i10 | 0) | 0;
20803 48 : i14 = i7 >>> (i15 >>> 0) | 0;
20804 48 : i15 = i7 << 32 - i15 | i5 >>> (i15 >>> 0) | 0;
20805 48 : return (tempRet0 = i14, i15) | 0;
20806 48 : }
20807 48 : } else {
20808 48 : if (i12) {
20809 48 : if ((i1 | 0) != 0) {
20810 48 : HEAP32[i1 >> 2] = (i7 >>> 0) % (i10 >>> 0);
20811 48 : HEAP32[i1 + 4 >> 2] = 0;
20812 48 : }
20813 48 : i14 = 0;
20814 48 : i15 = (i7 >>> 0) / (i10 >>> 0) >>> 0;
20815 48 : return (tempRet0 = i14, i15) | 0;
20816 48 : }
20817 48 : if ((i5 | 0) == 0) {
20818 48 : if ((i1 | 0) != 0) {
20819 48 : HEAP32[i1 >> 2] = 0;
20820 48 : HEAP32[i1 + 4 >> 2] = (i7 >>> 0) % (i11 >>> 0);
20821 48 : }
20822 48 : i14 = 0;
20823 48 : i15 = (i7 >>> 0) / (i11 >>> 0) >>> 0;
20824 48 : return (tempRet0 = i14, i15) | 0;
20825 48 : }
20826 48 : i10 = i11 - 1 | 0;
20827 48 : if ((i10 & i11 | 0) == 0) {
20828 48 : if ((i1 | 0) != 0) {
20829 48 : HEAP32[i1 >> 2] = i6 | 0;
20830 48 : HEAP32[i1 + 4 >> 2] = i10 & i7 | i8 & 0;
20831 48 : }
20832 48 : i14 = 0;
20833 48 : i15 = i7 >>> ((_llvm_cttz_i32(i11 | 0) | 0) >>> 0);
20834 48 : return (tempRet0 = i14, i15) | 0;
20835 48 : }
20836 48 : i10 = (_llvm_ctlz_i32(i11 | 0) | 0) - (_llvm_ctlz_i32(i7 | 0) | 0) | 0;
20837 48 : if (i10 >>> 0 <= 30) {
20838 48 : i8 = i10 + 1 | 0;
20839 48 : i15 = 31 - i10 | 0;
20840 48 : i9 = i8;
20841 48 : i6 = i7 << i15 | i5 >>> (i8 >>> 0);
20842 48 : i8 = i7 >>> (i8 >>> 0);
20843 48 : i11 = 0;
20844 48 : i7 = i5 << i15;
20845 48 : break;
20846 48 : }
20847 48 : if ((i1 | 0) == 0) {
20848 48 : i14 = 0;
20849 48 : i15 = 0;
20850 48 : return (tempRet0 = i14, i15) | 0;
20851 48 : }
20852 48 : HEAP32[i1 >> 2] = i6 | 0;
20853 48 : HEAP32[i1 + 4 >> 2] = i9 | i8 & 0;
20854 48 : i14 = 0;
20855 48 : i15 = 0;
20856 48 : return (tempRet0 = i14, i15) | 0;
20857 48 : }
20858 48 : } while (0);
20859 48 : if ((i9 | 0) == 0) {
20860 48 : i12 = i6;
20861 48 : i2 = 0;
20862 48 : i6 = 0;
20863 48 : } else {
20864 48 : i2 = i2 | 0 | 0;
20865 48 : i3 = i3 | i4 & 0;
20866 48 : i4 = _i64Add(i2, i3, -1, -1) | 0;
20867 48 : i5 = tempRet0;
20868 48 : i10 = i8;
20869 48 : i12 = i6;
20870 48 : i6 = 0;
20871 48 : while (1) {
20872 48 : i8 = i11 >>> 31 | i7 << 1;
20873 48 : i11 = i6 | i11 << 1;
20874 48 : i7 = i12 << 1 | i7 >>> 31 | 0;
20875 48 : i10 = i12 >>> 31 | i10 << 1 | 0;
20876 48 : _i64Subtract(i4, i5, i7, i10) | 0;
20877 48 : i12 = tempRet0;
20878 48 : i15 = i12 >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1;
20879 48 : i6 = i15 & 1;
20880 48 : i12 = _i64Subtract(i7, i10, i15 & i2, (((i12 | 0) < 0 ? -1 : 0) >> 31 | ((i12 | 0) < 0 ? -1 : 0) << 1) & i3) | 0;
20881 48 : i10 = tempRet0;
20882 48 : i9 = i9 - 1 | 0;
20883 48 : if ((i9 | 0) == 0) {
20884 48 : break;
20885 48 : } else {
20886 48 : i7 = i8;
20887 48 : }
20888 48 : }
20889 48 : i7 = i8;
20890 48 : i8 = i10;
20891 48 : i2 = 0;
20892 48 : }
20893 48 : i3 = 0;
20894 48 : if ((i1 | 0) != 0) {
20895 48 : HEAP32[i1 >> 2] = i12;
20896 48 : HEAP32[i1 + 4 >> 2] = i8;
20897 48 : }
20898 48 : i14 = (i11 | 0) >>> 31 | (i7 | i3) << 1 | (i3 << 1 | i11 >>> 31) & 0 | i2;
20899 48 : i15 = (i11 << 1 | 0 >>> 31) & -2 | i6;
20900 48 : return (tempRet0 = i14, i15) | 0;
20901 48 : }
20902 21 : function _leaveblock(i1) {
20903 21 : i1 = i1 | 0;
20904 21 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
20905 21 : i3 = STACKTOP;
20906 21 : STACKTOP = STACKTOP + 16 | 0;
20907 21 : i5 = i3;
20908 21 : i7 = i1 + 16 | 0;
20909 21 : i4 = HEAP32[i7 >> 2] | 0;
20910 21 : i2 = i1 + 12 | 0;
20911 21 : i6 = HEAP32[i2 >> 2] | 0;
20912 21 : if ((HEAP32[i4 >> 2] | 0) != 0 ? (HEAP8[i4 + 9 | 0] | 0) != 0 : 0) {
20913 21 : i16 = _luaK_jump(i1) | 0;
20914 21 : _luaK_patchclose(i1, i16, HEAPU8[i4 + 8 | 0] | 0);
20915 21 : _luaK_patchtohere(i1, i16);
20916 21 : }
20917 21 : L5 : do {
20918 21 : if ((HEAP8[i4 + 10 | 0] | 0) != 0) {
20919 21 : i15 = i6 + 52 | 0;
20920 21 : i14 = _luaS_new(HEAP32[i15 >> 2] | 0, 6304) | 0;
20921 21 : i13 = i6 + 64 | 0;
20922 21 : i16 = HEAP32[i13 >> 2] | 0;
20923 21 : i10 = i16 + 24 | 0;
20924 21 : i8 = i6 + 48 | 0;
20925 21 : i11 = HEAP32[(HEAP32[i8 >> 2] | 0) + 20 >> 2] | 0;
20926 21 : i12 = i16 + 28 | 0;
20927 21 : i9 = HEAP32[i12 >> 2] | 0;
20928 21 : i16 = i16 + 32 | 0;
20929 21 : if ((i9 | 0) < (HEAP32[i16 >> 2] | 0)) {
20930 21 : i15 = HEAP32[i10 >> 2] | 0;
20931 21 : } else {
20932 21 : i15 = _luaM_growaux_(HEAP32[i15 >> 2] | 0, HEAP32[i10 >> 2] | 0, i16, 16, 32767, 6312) | 0;
20933 21 : HEAP32[i10 >> 2] = i15;
20934 21 : }
20935 21 : HEAP32[i15 + (i9 << 4) >> 2] = i14;
20936 21 : i16 = HEAP32[i10 >> 2] | 0;
20937 21 : HEAP32[i16 + (i9 << 4) + 8 >> 2] = 0;
20938 21 : HEAP8[i16 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
20939 21 : HEAP32[(HEAP32[i10 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
20940 21 : HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + 1;
20941 21 : i10 = HEAP32[i13 >> 2] | 0;
20942 21 : i9 = (HEAP32[i10 + 24 >> 2] | 0) + (i9 << 4) | 0;
20943 21 : i11 = HEAP16[(HEAP32[(HEAP32[i8 >> 2] | 0) + 16 >> 2] | 0) + 6 >> 1] | 0;
20944 21 : i8 = i10 + 16 | 0;
20945 21 : if ((i11 | 0) < (HEAP32[i8 >> 2] | 0)) {
20946 21 : i10 = i10 + 12 | 0;
20947 21 : do {
20948 21 : while (1) {
20949 21 : if ((_luaS_eqstr(HEAP32[(HEAP32[i10 >> 2] | 0) + (i11 << 4) >> 2] | 0, HEAP32[i9 >> 2] | 0) | 0) == 0) {
20950 21 : break;
20951 21 : }
20952 21 : _closegoto(i6, i11, i9);
20953 21 : if ((i11 | 0) >= (HEAP32[i8 >> 2] | 0)) {
20954 21 : break L5;
20955 21 : }
20956 21 : }
20957 21 : i11 = i11 + 1 | 0;
20958 21 : } while ((i11 | 0) < (HEAP32[i8 >> 2] | 0));
20959 21 : }
20960 21 : }
20961 21 : } while (0);
20962 21 : HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
20963 21 : i7 = i4 + 8 | 0;
20964 21 : i9 = HEAP8[i7] | 0;
20965 21 : i10 = i1 + 46 | 0;
20966 21 : i8 = (HEAP32[i2 >> 2] | 0) + 64 | 0;
20967 21 : i14 = (HEAP32[i8 >> 2] | 0) + 4 | 0;
20968 21 : HEAP32[i14 >> 2] = (i9 & 255) - (HEAPU8[i10] | 0) + (HEAP32[i14 >> 2] | 0);
20969 21 : i14 = HEAP8[i10] | 0;
20970 21 : if ((i14 & 255) > (i9 & 255)) {
20971 21 : i13 = i1 + 20 | 0;
20972 21 : i11 = i1 + 40 | 0;
20973 21 : i12 = (HEAP32[i1 >> 2] | 0) + 24 | 0;
20974 21 : do {
20975 21 : i16 = HEAP32[i13 >> 2] | 0;
20976 21 : i14 = i14 + -1 << 24 >> 24;
20977 21 : HEAP8[i10] = i14;
20978 21 : HEAP32[(HEAP32[i12 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[i8 >> 2] >> 2] | 0) + ((HEAP32[i11 >> 2] | 0) + (i14 & 255) << 1) >> 1] | 0) * 12 | 0) + 8 >> 2] = i16;
20979 21 : i14 = HEAP8[i10] | 0;
20980 21 : } while ((i14 & 255) > (i9 & 255));
20981 21 : }
20982 21 : HEAP8[i1 + 48 | 0] = i14;
20983 21 : i10 = HEAP32[i6 + 64 >> 2] | 0;
20984 21 : HEAP32[i10 + 28 >> 2] = HEAP16[i4 + 4 >> 1] | 0;
20985 21 : i9 = HEAP16[i4 + 6 >> 1] | 0;
20986 21 : if ((HEAP32[i4 >> 2] | 0) == 0) {
20987 21 : if ((i9 | 0) >= (HEAP32[i10 + 16 >> 2] | 0)) {
20988 21 : STACKTOP = i3;
20989 21 : return;
20990 21 : }
20991 21 : i10 = HEAP32[i10 + 12 >> 2] | 0;
20992 21 : i11 = HEAP32[i10 + (i9 << 4) >> 2] | 0;
20993 21 : if ((HEAP8[i11 + 4 | 0] | 0) != 4) {
20994 21 : i16 = 6200;
20995 21 : i15 = i6 + 52 | 0;
20996 21 : i15 = HEAP32[i15 >> 2] | 0;
20997 21 : i14 = i11 + 16 | 0;
20998 21 : i13 = i10 + (i9 << 4) + 8 | 0;
20999 21 : i13 = HEAP32[i13 >> 2] | 0;
21000 21 : HEAP32[i5 >> 2] = i14;
21001 21 : i14 = i5 + 4 | 0;
21002 21 : HEAP32[i14 >> 2] = i13;
21003 21 : i16 = _luaO_pushfstring(i15, i16, i5) | 0;
21004 21 : _semerror(i6, i16);
21005 21 : }
21006 21 : i16 = (HEAP8[i11 + 6 | 0] | 0) != 0 ? 6160 : 6200;
21007 21 : i15 = i6 + 52 | 0;
21008 21 : i15 = HEAP32[i15 >> 2] | 0;
21009 21 : i14 = i11 + 16 | 0;
21010 21 : i13 = i10 + (i9 << 4) + 8 | 0;
21011 21 : i13 = HEAP32[i13 >> 2] | 0;
21012 21 : HEAP32[i5 >> 2] = i14;
21013 21 : i14 = i5 + 4 | 0;
21014 21 : HEAP32[i14 >> 2] = i13;
21015 21 : i16 = _luaO_pushfstring(i15, i16, i5) | 0;
21016 21 : _semerror(i6, i16);
21017 21 : }
21018 21 : i6 = HEAP32[i8 >> 2] | 0;
21019 21 : i5 = i6 + 16 | 0;
21020 21 : if ((i9 | 0) >= (HEAP32[i5 >> 2] | 0)) {
21021 21 : STACKTOP = i3;
21022 21 : return;
21023 21 : }
21024 21 : i6 = i6 + 12 | 0;
21025 21 : i4 = i4 + 9 | 0;
21026 21 : do {
21027 21 : i10 = HEAP32[i6 >> 2] | 0;
21028 21 : i8 = i10 + (i9 << 4) + 12 | 0;
21029 21 : i11 = HEAP8[i7] | 0;
21030 21 : i12 = i11 & 255;
21031 21 : if ((HEAPU8[i8] | 0) > (i11 & 255)) {
21032 21 : if ((HEAP8[i4] | 0) != 0) {
21033 21 : _luaK_patchclose(i1, HEAP32[i10 + (i9 << 4) + 4 >> 2] | 0, i12);
21034 21 : i11 = HEAP8[i7] | 0;
21035 21 : }
21036 21 : HEAP8[i8] = i11;
21037 21 : }
21038 21 : i9 = ((_findlabel(HEAP32[i2 >> 2] | 0, i9) | 0) == 0) + i9 | 0;
21039 21 : } while ((i9 | 0) < (HEAP32[i5 >> 2] | 0));
21040 21 : STACKTOP = i3;
21041 21 : return;
21042 21 : }
21043 1 : function _getobjname(i3, i7, i9, i2) {
21044 0 : i3 = i3 | 0;
21045 0 : i7 = i7 | 0;
21046 0 : i9 = i9 | 0;
21047 0 : i2 = i2 | 0;
21048 0 : var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
21049 0 : i1 = STACKTOP;
21050 0 : i4 = i3 + 12 | 0;
21051 0 : L1 : while (1) {
21052 0 : i13 = _luaF_getlocalname(i3, i9 + 1 | 0, i7) | 0;
21053 0 : HEAP32[i2 >> 2] = i13;
21054 0 : if ((i13 | 0) != 0) {
21055 0 : i2 = 2040;
21056 0 : i4 = 42;
21057 0 : break;
21058 0 : }
21059 0 : if ((i7 | 0) <= 0) {
21060 0 : i2 = 0;
21061 0 : i4 = 42;
21062 0 : break;
21063 0 : }
21064 0 : i6 = HEAP32[i4 >> 2] | 0;
21065 0 : i8 = 0;
21066 0 : i5 = -1;
21067 0 : do {
21068 0 : i12 = HEAP32[i6 + (i8 << 2) >> 2] | 0;
21069 0 : i13 = i12 & 63;
21070 0 : i11 = i12 >>> 6 & 255;
21071 0 : switch (i13 | 0) {
21072 0 : case 27:
21073 0 : {
21074 0 : i10 = i8;
21075 0 : i5 = (i11 | 0) == (i9 | 0) ? i8 : i5;
21076 0 : break;
21077 0 : }
21078 0 : case 30:
21079 0 : case 29:
21080 0 : {
21081 0 : i10 = i8;
21082 0 : i5 = (i11 | 0) > (i9 | 0) ? i5 : i8;
21083 0 : break;
21084 0 : }
21085 0 : case 23:
21086 0 : {
21087 0 : i10 = (i12 >>> 14) + -131071 | 0;
21088 0 : i13 = i8 + 1 + i10 | 0;
21089 0 : i10 = ((i8 | 0) >= (i13 | 0) | (i13 | 0) > (i7 | 0) ? 0 : i10) + i8 | 0;
21090 0 : break;
21091 0 : }
21092 0 : case 4:
21093 0 : {
21094 0 : if ((i11 | 0) > (i9 | 0)) {
21095 0 : i10 = i8;
21096 0 : } else {
21097 0 : i10 = i8;
21098 0 : i5 = (i11 + (i12 >>> 23) | 0) < (i9 | 0) ? i5 : i8;
21099 0 : }
21100 0 : break;
21101 0 : }
21102 0 : case 34:
21103 0 : {
21104 0 : i10 = i8;
21105 0 : i5 = (i11 + 2 | 0) > (i9 | 0) ? i5 : i8;
21106 0 : break;
21107 0 : }
21108 0 : default:
21109 0 : {
21110 0 : i10 = i8;
21111 0 : i5 = (HEAP8[5584 + i13 | 0] & 64) != 0 & (i11 | 0) == (i9 | 0) ? i8 : i5;
21112 0 : }
21113 0 : }
21114 0 : i8 = i10 + 1 | 0;
21115 0 : } while ((i8 | 0) < (i7 | 0));
21116 0 : if ((i5 | 0) == -1) {
21117 0 : i2 = 0;
21118 0 : i4 = 42;
21119 0 : break;
21120 0 : }
21121 0 : i7 = HEAP32[i6 + (i5 << 2) >> 2] | 0;
21122 0 : i9 = i7 & 63;
21123 0 : switch (i9 | 0) {
21124 0 : case 0:
21125 0 : {
21126 0 : break;
21127 0 : }
21128 0 : case 7:
21129 0 : case 6:
21130 0 : {
21131 0 : i4 = 17;
21132 0 : break L1;
21133 0 : }
21134 0 : case 5:
21135 0 : {
21136 0 : i4 = 29;
21137 0 : break L1;
21138 0 : }
21139 0 : case 1:
21140 0 : {
21141 0 : i4 = 32;
21142 0 : break L1;
21143 0 : }
21144 0 : case 2:
21145 0 : {
21146 0 : i4 = 33;
21147 0 : break L1;
21148 0 : }
21149 0 : case 12:
21150 0 : {
21151 0 : i4 = 36;
21152 0 : break L1;
21153 0 : }
21154 0 : default:
21155 0 : {
21156 0 : i2 = 0;
21157 0 : i4 = 42;
21158 0 : break L1;
21159 0 : }
21160 0 : }
21161 0 : i9 = i7 >>> 23;
21162 0 : if (i9 >>> 0 < (i7 >>> 6 & 255) >>> 0) {
21163 0 : i7 = i5;
21164 0 : } else {
21165 0 : i2 = 0;
21166 0 : i4 = 42;
21167 0 : break;
21168 0 : }
21169 0 : }
21170 0 : if ((i4 | 0) == 17) {
21171 0 : i6 = i7 >>> 14;
21172 0 : i8 = i6 & 511;
21173 0 : i7 = i7 >>> 23;
21174 0 : if ((i9 | 0) != 7) {
21175 0 : i7 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 << 3) >> 2] | 0;
21176 0 : if ((i7 | 0) == 0) {
21177 0 : i7 = 2104;
21178 0 : } else {
21179 0 : i7 = i7 + 16 | 0;
21180 0 : }
21181 0 : } else {
21182 0 : i7 = _luaF_getlocalname(i3, i7 + 1 | 0, i5) | 0;
21183 0 : }
21184 0 : if ((i6 & 256 | 0) == 0) {
21185 0 : i3 = _getobjname(i3, i5, i8, i2) | 0;
21186 0 : if (!((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0)) {
21187 0 : i4 = 26;
21188 0 : }
21189 0 : } else {
21190 0 : i5 = i6 & 255;
21191 0 : i3 = HEAP32[i3 + 8 >> 2] | 0;
21192 0 : if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) == 4) {
21193 0 : HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
21194 0 : } else {
21195 0 : i4 = 26;
21196 0 : }
21197 0 : }
21198 0 : if ((i4 | 0) == 26) {
21199 0 : HEAP32[i2 >> 2] = 2104;
21200 0 : }
21201 0 : if ((i7 | 0) == 0) {
21202 0 : i13 = 2064;
21203 0 : STACKTOP = i1;
21204 0 : return i13 | 0;
21205 0 : }
21206 0 : i13 = (_strcmp(i7, 2048) | 0) == 0;
21207 0 : i13 = i13 ? 2056 : 2064;
21208 0 : STACKTOP = i1;
21209 0 : return i13 | 0;
21210 0 : } else if ((i4 | 0) == 29) {
21211 0 : i3 = HEAP32[(HEAP32[i3 + 28 >> 2] | 0) + (i7 >>> 23 << 3) >> 2] | 0;
21212 0 : if ((i3 | 0) == 0) {
21213 0 : i3 = 2104;
21214 0 : } else {
21215 0 : i3 = i3 + 16 | 0;
21216 0 : }
21217 0 : HEAP32[i2 >> 2] = i3;
21218 0 : i13 = 2072;
21219 0 : STACKTOP = i1;
21220 0 : return i13 | 0;
21221 0 : } else if ((i4 | 0) == 32) {
21222 0 : i5 = i7 >>> 14;
21223 0 : } else if ((i4 | 0) == 33) {
21224 0 : i5 = (HEAP32[i6 + (i5 + 1 << 2) >> 2] | 0) >>> 6;
21225 0 : } else if ((i4 | 0) == 36) {
21226 0 : i4 = i7 >>> 14;
21227 0 : if ((i4 & 256 | 0) == 0) {
21228 0 : i3 = _getobjname(i3, i5, i4 & 511, i2) | 0;
21229 0 : if ((i3 | 0) != 0 ? (HEAP8[i3] | 0) == 99 : 0) {
21230 0 : i13 = 2096;
21231 0 : STACKTOP = i1;
21232 0 : return i13 | 0;
21233 0 : }
21234 0 : } else {
21235 0 : i4 = i4 & 255;
21236 0 : i3 = HEAP32[i3 + 8 >> 2] | 0;
21237 0 : if ((HEAP32[i3 + (i4 << 4) + 8 >> 2] & 15 | 0) == 4) {
21238 0 : HEAP32[i2 >> 2] = (HEAP32[i3 + (i4 << 4) >> 2] | 0) + 16;
21239 0 : i13 = 2096;
21240 0 : STACKTOP = i1;
21241 0 : return i13 | 0;
21242 0 : }
21243 0 : }
21244 0 : HEAP32[i2 >> 2] = 2104;
21245 0 : i13 = 2096;
21246 0 : STACKTOP = i1;
21247 0 : return i13 | 0;
21248 0 : } else if ((i4 | 0) == 42) {
21249 0 : STACKTOP = i1;
21250 0 : return i2 | 0;
21251 0 : }
21252 0 : i3 = HEAP32[i3 + 8 >> 2] | 0;
21253 0 : if ((HEAP32[i3 + (i5 << 4) + 8 >> 2] & 15 | 0) != 4) {
21254 0 : i13 = 0;
21255 0 : STACKTOP = i1;
21256 0 : return i13 | 0;
21257 0 : }
21258 0 : HEAP32[i2 >> 2] = (HEAP32[i3 + (i5 << 4) >> 2] | 0) + 16;
21259 0 : i13 = 2080;
21260 0 : STACKTOP = i1;
21261 0 : return i13 | 0;
21262 1 : }
21263 9 : function _assignment(i2, i16, i5) {
21264 9 : i2 = i2 | 0;
21265 9 : i16 = i16 | 0;
21266 9 : i5 = i5 | 0;
21267 9 : var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
21268 9 : i3 = STACKTOP;
21269 9 : STACKTOP = STACKTOP + 80 | 0;
21270 9 : i6 = i3 + 56 | 0;
21271 9 : i1 = i3 + 32 | 0;
21272 9 : i8 = i3;
21273 9 : i4 = i16 + 8 | 0;
21274 9 : if (!(((HEAP32[i4 >> 2] | 0) + -7 | 0) >>> 0 < 3)) {
21275 9 : _luaX_syntaxerror(i2, 6344);
21276 9 : }
21277 9 : i13 = i2 + 16 | 0;
21278 9 : i14 = HEAP32[i13 >> 2] | 0;
21279 9 : do {
21280 9 : if ((i14 | 0) == 44) {
21281 9 : _luaX_next(i2);
21282 9 : HEAP32[i8 >> 2] = i16;
21283 9 : i14 = i8 + 8 | 0;
21284 9 : _suffixedexp(i2, i14);
21285 9 : i15 = i2 + 48 | 0;
21286 9 : if ((HEAP32[i14 >> 2] | 0) != 9 ? (i10 = HEAP32[i15 >> 2] | 0, i11 = HEAP8[i10 + 48 | 0] | 0, i9 = i11 & 255, (i16 | 0) != 0) : 0) {
21287 9 : i13 = i8 + 16 | 0;
21288 9 : i12 = i11 & 255;
21289 9 : i18 = 0;
21290 9 : do {
21291 9 : if ((HEAP32[i16 + 8 >> 2] | 0) == 9) {
21292 9 : i17 = i16 + 16 | 0;
21293 9 : i19 = i17 + 3 | 0;
21294 9 : i20 = HEAPU8[i19] | 0;
21295 9 : i21 = HEAP32[i14 >> 2] | 0;
21296 9 : if ((i20 | 0) == (i21 | 0)) {
21297 9 : i21 = i17 + 2 | 0;
21298 9 : if ((HEAPU8[i21] | 0) == (HEAP32[i13 >> 2] | 0)) {
21299 9 : HEAP8[i19] = 7;
21300 9 : HEAP8[i21] = i11;
21301 9 : i20 = HEAP32[i14 >> 2] | 0;
21302 9 : i18 = 1;
21303 9 : }
21304 9 : } else {
21305 9 : i20 = i21;
21306 9 : }
21307 9 : if ((i20 | 0) == 7 ? (HEAP16[i17 >> 1] | 0) == (HEAP32[i13 >> 2] | 0) : 0) {
21308 9 : HEAP16[i17 >> 1] = i12;
21309 9 : i18 = 1;
21310 9 : }
21311 9 : }
21312 9 : i16 = HEAP32[i16 >> 2] | 0;
21313 9 : } while ((i16 | 0) != 0);
21314 9 : if ((i18 | 0) != 0) {
21315 9 : _luaK_codeABC(i10, (HEAP32[i14 >> 2] | 0) == 7 ? 0 : 5, i9, HEAP32[i13 >> 2] | 0, 0) | 0;
21316 9 : _luaK_reserveregs(i10, 1);
21317 9 : }
21318 9 : }
21319 9 : i9 = HEAP32[i15 >> 2] | 0;
21320 9 : if (((HEAPU16[(HEAP32[i2 + 52 >> 2] | 0) + 38 >> 1] | 0) + i5 | 0) <= 200) {
21321 9 : _assignment(i2, i8, i5 + 1 | 0);
21322 9 : i7 = i1;
21323 9 : break;
21324 9 : }
21325 9 : i8 = i9 + 12 | 0;
21326 9 : i5 = HEAP32[(HEAP32[i8 >> 2] | 0) + 52 >> 2] | 0;
21327 9 : i9 = HEAP32[(HEAP32[i9 >> 2] | 0) + 64 >> 2] | 0;
21328 9 : if ((i9 | 0) == 0) {
21329 9 : i20 = 6552;
21330 9 : HEAP32[i6 >> 2] = 6360;
21331 9 : i21 = i6 + 4 | 0;
21332 9 : HEAP32[i21 >> 2] = 200;
21333 9 : i21 = i6 + 8 | 0;
21334 9 : HEAP32[i21 >> 2] = i20;
21335 9 : i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
21336 9 : i20 = HEAP32[i8 >> 2] | 0;
21337 9 : _luaX_syntaxerror(i20, i21);
21338 9 : }
21339 9 : HEAP32[i6 >> 2] = i9;
21340 9 : i20 = _luaO_pushfstring(i5, 6568, i6) | 0;
21341 9 : HEAP32[i6 >> 2] = 6360;
21342 9 : i21 = i6 + 4 | 0;
21343 9 : HEAP32[i21 >> 2] = 200;
21344 9 : i21 = i6 + 8 | 0;
21345 9 : HEAP32[i21 >> 2] = i20;
21346 9 : i21 = _luaO_pushfstring(i5, 6592, i6) | 0;
21347 9 : i20 = HEAP32[i8 >> 2] | 0;
21348 9 : _luaX_syntaxerror(i20, i21);
21349 9 : } else if ((i14 | 0) == 61) {
21350 9 : _luaX_next(i2);
21351 9 : _subexpr(i2, i1, 0) | 0;
21352 9 : i6 = i2 + 48 | 0;
21353 9 : if ((HEAP32[i13 >> 2] | 0) == 44) {
21354 9 : i9 = 1;
21355 9 : do {
21356 9 : _luaX_next(i2);
21357 9 : _luaK_exp2nextreg(HEAP32[i6 >> 2] | 0, i1);
21358 9 : _subexpr(i2, i1, 0) | 0;
21359 9 : i9 = i9 + 1 | 0;
21360 9 : } while ((HEAP32[i13 >> 2] | 0) == 44);
21361 9 : } else {
21362 9 : i9 = 1;
21363 9 : }
21364 9 : i8 = HEAP32[i6 >> 2] | 0;
21365 9 : if ((i9 | 0) == (i5 | 0)) {
21366 9 : _luaK_setoneret(i8, i1);
21367 9 : _luaK_storevar(HEAP32[i6 >> 2] | 0, i4, i1);
21368 9 : STACKTOP = i3;
21369 9 : return;
21370 9 : }
21371 9 : i7 = i5 - i9 | 0;
21372 9 : i10 = HEAP32[i1 >> 2] | 0;
21373 9 : if ((i10 | 0) == 13 | (i10 | 0) == 12) {
21374 9 : i10 = i7 + 1 | 0;
21375 9 : i10 = (i10 | 0) < 0 ? 0 : i10;
21376 9 : _luaK_setreturns(i8, i1, i10);
21377 9 : if ((i10 | 0) > 1) {
21378 9 : _luaK_reserveregs(i8, i10 + -1 | 0);
21379 9 : }
21380 9 : } else if ((i10 | 0) == 0) {
21381 9 : i12 = 30;
21382 9 : } else {
21383 9 : _luaK_exp2nextreg(i8, i1);
21384 9 : i12 = 30;
21385 9 : }
21386 9 : if ((i12 | 0) == 30 ? (i7 | 0) > 0 : 0) {
21387 9 : i21 = HEAPU8[i8 + 48 | 0] | 0;
21388 9 : _luaK_reserveregs(i8, i7);
21389 9 : _luaK_nil(i8, i21, i7);
21390 9 : }
21391 9 : if ((i9 | 0) > (i5 | 0)) {
21392 9 : i21 = (HEAP32[i6 >> 2] | 0) + 48 | 0;
21393 9 : HEAP8[i21] = i7 + (HEAPU8[i21] | 0);
21394 9 : i7 = i1;
21395 9 : } else {
21396 9 : i7 = i1;
21397 9 : }
21398 9 : } else {
21399 9 : _error_expected(i2, 61);
21400 9 : }
21401 9 : } while (0);
21402 9 : i21 = HEAP32[i2 + 48 >> 2] | 0;
21403 9 : i20 = (HEAPU8[i21 + 48 | 0] | 0) + -1 | 0;
21404 9 : HEAP32[i1 + 16 >> 2] = -1;
21405 9 : HEAP32[i1 + 20 >> 2] = -1;
21406 9 : HEAP32[i7 >> 2] = 6;
21407 9 : HEAP32[i1 + 8 >> 2] = i20;
21408 9 : _luaK_storevar(i21, i4, i1);
21409 9 : STACKTOP = i3;
21410 9 : return;
21411 9 : }
21412 1 : function _str_find_aux(i3, i7) {
21413 0 : i3 = i3 | 0;
21414 0 : i7 = i7 | 0;
21415 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
21416 0 : i1 = STACKTOP;
21417 0 : STACKTOP = STACKTOP + 288 | 0;
21418 0 : i9 = i1 + 284 | 0;
21419 0 : i5 = i1 + 280 | 0;
21420 0 : i4 = i1;
21421 0 : i2 = _luaL_checklstring(i3, 1, i9) | 0;
21422 0 : i8 = _luaL_checklstring(i3, 2, i5) | 0;
21423 0 : i12 = _luaL_optinteger(i3, 3, 1) | 0;
21424 0 : i10 = HEAP32[i9 >> 2] | 0;
21425 0 : if (!((i12 | 0) > -1)) {
21426 0 : if (i10 >>> 0 < (0 - i12 | 0) >>> 0) {
21427 0 : i12 = 1;
21428 0 : } else {
21429 0 : i12 = i12 + 1 + i10 | 0;
21430 0 : i6 = 4;
21431 0 : }
21432 0 : } else {
21433 0 : i6 = 4;
21434 0 : }
21435 0 : if ((i6 | 0) == 4) {
21436 0 : if ((i12 | 0) != 0) {
21437 0 : if (i12 >>> 0 > (i10 + 1 | 0) >>> 0) {
21438 0 : _lua_pushnil(i3);
21439 0 : i13 = 1;
21440 0 : STACKTOP = i1;
21441 0 : return i13 | 0;
21442 0 : }
21443 0 : } else {
21444 0 : i12 = 1;
21445 0 : }
21446 0 : }
21447 0 : i7 = (i7 | 0) != 0;
21448 0 : L10 : do {
21449 0 : if (i7) {
21450 0 : i13 = (_lua_toboolean(i3, 4) | 0) == 0;
21451 0 : i10 = HEAP32[i5 >> 2] | 0;
21452 0 : if (i13) {
21453 0 : i11 = 0;
21454 0 : do {
21455 0 : i13 = i8 + i11 | 0;
21456 0 : if ((_strpbrk(i13, 7512) | 0) != 0) {
21457 0 : i6 = 20;
21458 0 : break L10;
21459 0 : }
21460 0 : i11 = i11 + 1 + (_strlen(i13 | 0) | 0) | 0;
21461 0 : } while (!(i11 >>> 0 > i10 >>> 0));
21462 0 : }
21463 0 : i11 = i2 + (i12 + -1) | 0;
21464 0 : i9 = (HEAP32[i9 >> 2] | 0) - i12 + 1 | 0;
21465 0 : L17 : do {
21466 0 : if ((i10 | 0) == 0) {
21467 0 : if ((i11 | 0) == 0) {
21468 0 : break L10;
21469 0 : }
21470 0 : } else {
21471 0 : if (i10 >>> 0 > i9 >>> 0) {
21472 0 : break L10;
21473 0 : }
21474 0 : i4 = i10 + -1 | 0;
21475 0 : if ((i4 | 0) == (i9 | 0)) {
21476 0 : break L10;
21477 0 : }
21478 0 : i7 = HEAP8[i8] | 0;
21479 0 : i8 = i8 + 1 | 0;
21480 0 : i9 = i9 - i4 | 0;
21481 0 : i12 = i11;
21482 0 : while (1) {
21483 0 : i11 = _memchr(i12, i7, i9) | 0;
21484 0 : if ((i11 | 0) == 0) {
21485 0 : break L10;
21486 0 : }
21487 0 : i10 = i11 + 1 | 0;
21488 0 : if ((_memcmp(i10, i8, i4) | 0) == 0) {
21489 0 : break L17;
21490 0 : }
21491 0 : i11 = i10;
21492 0 : i9 = i12 + i9 | 0;
21493 0 : if ((i9 | 0) == (i11 | 0)) {
21494 0 : break L10;
21495 0 : } else {
21496 0 : i9 = i9 - i11 | 0;
21497 0 : i12 = i10;
21498 0 : }
21499 0 : }
21500 0 : }
21501 0 : } while (0);
21502 0 : i13 = i11 - i2 | 0;
21503 0 : _lua_pushinteger(i3, i13 + 1 | 0);
21504 0 : _lua_pushinteger(i3, i13 + (HEAP32[i5 >> 2] | 0) | 0);
21505 0 : i13 = 2;
21506 0 : STACKTOP = i1;
21507 0 : return i13 | 0;
21508 0 : } else {
21509 0 : i6 = 20;
21510 0 : }
21511 0 : } while (0);
21512 0 : L28 : do {
21513 0 : if ((i6 | 0) == 20) {
21514 0 : i6 = i2 + (i12 + -1) | 0;
21515 0 : i10 = (HEAP8[i8] | 0) == 94;
21516 0 : if (i10) {
21517 0 : i12 = (HEAP32[i5 >> 2] | 0) + -1 | 0;
21518 0 : HEAP32[i5 >> 2] = i12;
21519 0 : i8 = i8 + 1 | 0;
21520 0 : } else {
21521 0 : i12 = HEAP32[i5 >> 2] | 0;
21522 0 : }
21523 0 : i5 = i4 + 16 | 0;
21524 0 : HEAP32[i5 >> 2] = i3;
21525 0 : HEAP32[i4 >> 2] = 200;
21526 0 : HEAP32[i4 + 4 >> 2] = i2;
21527 0 : i11 = i4 + 8 | 0;
21528 0 : HEAP32[i11 >> 2] = i2 + (HEAP32[i9 >> 2] | 0);
21529 0 : HEAP32[i4 + 12 >> 2] = i8 + i12;
21530 0 : i9 = i4 + 20 | 0;
21531 0 : L34 : do {
21532 0 : if (i10) {
21533 0 : HEAP32[i9 >> 2] = 0;
21534 0 : i8 = _match(i4, i6, i8) | 0;
21535 0 : if ((i8 | 0) == 0) {
21536 0 : break L28;
21537 0 : }
21538 0 : } else {
21539 0 : while (1) {
21540 0 : HEAP32[i9 >> 2] = 0;
21541 0 : i10 = _match(i4, i6, i8) | 0;
21542 0 : if ((i10 | 0) != 0) {
21543 0 : i8 = i10;
21544 0 : break L34;
21545 0 : }
21546 0 : if (!(i6 >>> 0 < (HEAP32[i11 >> 2] | 0) >>> 0)) {
21547 0 : break L28;
21548 0 : }
21549 0 : i6 = i6 + 1 | 0;
21550 0 : }
21551 0 : }
21552 0 : } while (0);
21553 0 : if (i7) {
21554 0 : _lua_pushinteger(i3, 1 - i2 + i6 | 0);
21555 0 : _lua_pushinteger(i3, i8 - i2 | 0);
21556 0 : i2 = HEAP32[i9 >> 2] | 0;
21557 0 : _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
21558 0 : if ((i2 | 0) > 0) {
21559 0 : i3 = 0;
21560 0 : do {
21561 0 : _push_onecapture(i4, i3, 0, 0);
21562 0 : i3 = i3 + 1 | 0;
21563 0 : } while ((i3 | 0) != (i2 | 0));
21564 0 : }
21565 0 : i13 = i2 + 2 | 0;
21566 0 : STACKTOP = i1;
21567 0 : return i13 | 0;
21568 0 : } else {
21569 0 : i3 = HEAP32[i9 >> 2] | 0;
21570 0 : i2 = (i3 | 0) != 0 | (i6 | 0) == 0 ? i3 : 1;
21571 0 : _luaL_checkstack(HEAP32[i5 >> 2] | 0, i2, 7200);
21572 0 : if ((i2 | 0) > 0) {
21573 0 : i3 = 0;
21574 0 : } else {
21575 0 : i13 = i3;
21576 0 : STACKTOP = i1;
21577 0 : return i13 | 0;
21578 0 : }
21579 0 : do {
21580 0 : _push_onecapture(i4, i3, i6, i8);
21581 0 : i3 = i3 + 1 | 0;
21582 0 : } while ((i3 | 0) != (i2 | 0));
21583 0 : STACKTOP = i1;
21584 0 : return i2 | 0;
21585 0 : }
21586 0 : }
21587 0 : } while (0);
21588 0 : _lua_pushnil(i3);
21589 0 : i13 = 1;
21590 0 : STACKTOP = i1;
21591 0 : return i13 | 0;
21592 1 : }
21593 1 : function _luaO_pushvfstring(i2, i13, i10) {
21594 1 : i2 = i2 | 0;
21595 1 : i13 = i13 | 0;
21596 1 : i10 = i10 | 0;
21597 1 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, d18 = 0.0;
21598 1 : i3 = STACKTOP;
21599 1 : STACKTOP = STACKTOP + 48 | 0;
21600 1 : i7 = i3;
21601 1 : i9 = i3 + 32 | 0;
21602 1 : i8 = i3 + 8 | 0;
21603 1 : i14 = _strchr(i13, 37) | 0;
21604 1 : i6 = i2 + 24 | 0;
21605 1 : i4 = i2 + 8 | 0;
21606 1 : i15 = HEAP32[i4 >> 2] | 0;
21607 1 : i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
21608 1 : L1 : do {
21609 1 : if ((i14 | 0) == 0) {
21610 1 : i5 = i13;
21611 1 : i11 = i17;
21612 1 : i12 = i15;
21613 1 : i1 = 0;
21614 1 : } else {
21615 1 : i16 = 0;
21616 1 : L3 : while (1) {
21617 1 : if ((i17 | 0) < 48) {
21618 1 : _luaD_growstack(i2, 2);
21619 1 : i15 = HEAP32[i4 >> 2] | 0;
21620 1 : }
21621 1 : HEAP32[i4 >> 2] = i15 + 16;
21622 1 : i13 = _luaS_newlstr(i2, i13, i14 - i13 | 0) | 0;
21623 1 : HEAP32[i15 >> 2] = i13;
21624 1 : HEAP32[i15 + 8 >> 2] = HEAPU8[i13 + 4 | 0] | 64;
21625 1 : i13 = HEAP8[i14 + 1 | 0] | 0;
21626 1 : switch (i13 | 0) {
21627 1 : case 115:
21628 1 : {
21629 1 : i17 = HEAP32[i10 >> 2] | 0;
21630 1 : i13 = HEAP32[i17 >> 2] | 0;
21631 1 : HEAP32[i10 >> 2] = i17 + 4;
21632 1 : i13 = (i13 | 0) == 0 ? 5480 : i13;
21633 1 : i15 = _strlen(i13 | 0) | 0;
21634 1 : i17 = HEAP32[i4 >> 2] | 0;
21635 1 : HEAP32[i4 >> 2] = i17 + 16;
21636 1 : i15 = _luaS_newlstr(i2, i13, i15) | 0;
21637 1 : HEAP32[i17 >> 2] = i15;
21638 1 : HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
21639 1 : break;
21640 1 : }
21641 1 : case 100:
21642 1 : {
21643 1 : i17 = HEAP32[i4 >> 2] | 0;
21644 1 : HEAP32[i4 >> 2] = i17 + 16;
21645 1 : i13 = HEAP32[i10 >> 2] | 0;
21646 1 : i15 = HEAP32[i13 >> 2] | 0;
21647 1 : HEAP32[i10 >> 2] = i13 + 4;
21648 1 : HEAPF64[i17 >> 3] = +(i15 | 0);
21649 1 : HEAP32[i17 + 8 >> 2] = 3;
21650 1 : break;
21651 1 : }
21652 1 : case 37:
21653 1 : {
21654 1 : i17 = HEAP32[i4 >> 2] | 0;
21655 1 : HEAP32[i4 >> 2] = i17 + 16;
21656 1 : i15 = _luaS_newlstr(i2, 5496, 1) | 0;
21657 1 : HEAP32[i17 >> 2] = i15;
21658 1 : HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
21659 1 : break;
21660 1 : }
21661 1 : case 99:
21662 1 : {
21663 1 : i15 = HEAP32[i10 >> 2] | 0;
21664 1 : i17 = HEAP32[i15 >> 2] | 0;
21665 1 : HEAP32[i10 >> 2] = i15 + 4;
21666 1 : HEAP8[i9] = i17;
21667 1 : i17 = HEAP32[i4 >> 2] | 0;
21668 1 : HEAP32[i4 >> 2] = i17 + 16;
21669 1 : i15 = _luaS_newlstr(i2, i9, 1) | 0;
21670 1 : HEAP32[i17 >> 2] = i15;
21671 1 : HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
21672 1 : break;
21673 1 : }
21674 1 : case 102:
21675 1 : {
21676 1 : i17 = HEAP32[i4 >> 2] | 0;
21677 1 : HEAP32[i4 >> 2] = i17 + 16;
21678 1 : i15 = HEAP32[i10 >> 2] | 0;
21679 1 : d18 = +HEAPF64[i15 >> 3];
21680 1 : HEAP32[i10 >> 2] = i15 + 8;
21681 1 : HEAPF64[i17 >> 3] = d18;
21682 1 : HEAP32[i17 + 8 >> 2] = 3;
21683 1 : break;
21684 1 : }
21685 1 : case 112:
21686 1 : {
21687 1 : i17 = HEAP32[i10 >> 2] | 0;
21688 1 : i15 = HEAP32[i17 >> 2] | 0;
21689 1 : HEAP32[i10 >> 2] = i17 + 4;
21690 1 : HEAP32[i7 >> 2] = i15;
21691 1 : i15 = _sprintf(i8 | 0, 5488, i7 | 0) | 0;
21692 1 : i17 = HEAP32[i4 >> 2] | 0;
21693 1 : HEAP32[i4 >> 2] = i17 + 16;
21694 1 : i15 = _luaS_newlstr(i2, i8, i15) | 0;
21695 1 : HEAP32[i17 >> 2] = i15;
21696 1 : HEAP32[i17 + 8 >> 2] = HEAPU8[i15 + 4 | 0] | 64;
21697 1 : break;
21698 1 : }
21699 1 : default:
21700 1 : {
21701 1 : break L3;
21702 1 : }
21703 1 : }
21704 1 : i16 = i16 + 2 | 0;
21705 1 : i13 = i14 + 2 | 0;
21706 1 : i14 = _strchr(i13, 37) | 0;
21707 1 : i15 = HEAP32[i4 >> 2] | 0;
21708 1 : i17 = (HEAP32[i6 >> 2] | 0) - i15 | 0;
21709 1 : if ((i14 | 0) == 0) {
21710 1 : i5 = i13;
21711 1 : i11 = i17;
21712 1 : i12 = i15;
21713 1 : i1 = i16;
21714 1 : break L1;
21715 1 : }
21716 1 : }
21717 1 : HEAP32[i7 >> 2] = i13;
21718 1 : _luaG_runerror(i2, 5504, i7);
21719 1 : }
21720 1 : } while (0);
21721 1 : if ((i11 | 0) < 32) {
21722 1 : _luaD_growstack(i2, 1);
21723 1 : i12 = HEAP32[i4 >> 2] | 0;
21724 1 : }
21725 1 : i17 = _strlen(i5 | 0) | 0;
21726 1 : HEAP32[i4 >> 2] = i12 + 16;
21727 1 : i17 = _luaS_newlstr(i2, i5, i17) | 0;
21728 1 : HEAP32[i12 >> 2] = i17;
21729 1 : HEAP32[i12 + 8 >> 2] = HEAPU8[i17 + 4 | 0] | 64;
21730 1 : if ((i1 | 0) <= 0) {
21731 1 : i17 = HEAP32[i4 >> 2] | 0;
21732 1 : i17 = i17 + -16 | 0;
21733 1 : i17 = HEAP32[i17 >> 2] | 0;
21734 1 : i17 = i17 + 16 | 0;
21735 1 : STACKTOP = i3;
21736 1 : return i17 | 0;
21737 1 : }
21738 1 : _luaV_concat(i2, i1 | 1);
21739 1 : i17 = HEAP32[i4 >> 2] | 0;
21740 1 : i17 = i17 + -16 | 0;
21741 1 : i17 = HEAP32[i17 >> 2] | 0;
21742 1 : i17 = i17 + 16 | 0;
21743 1 : STACKTOP = i3;
21744 1 : return i17 | 0;
21745 1 : }
21746 1 : function _luaH_getn(i6) {
21747 1 : i6 = i6 | 0;
21748 1 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0, i13 = 0;
21749 1 : i1 = STACKTOP;
21750 1 : STACKTOP = STACKTOP + 16 | 0;
21751 1 : i2 = i1;
21752 1 : i3 = i6 + 28 | 0;
21753 1 : i12 = HEAP32[i3 >> 2] | 0;
21754 1 : if ((i12 | 0) != 0 ? (i4 = HEAP32[i6 + 12 >> 2] | 0, (HEAP32[i4 + (i12 + -1 << 4) + 8 >> 2] | 0) == 0) : 0) {
21755 1 : if (i12 >>> 0 > 1) {
21756 1 : i10 = 0;
21757 1 : } else {
21758 1 : i13 = 0;
21759 1 : STACKTOP = i1;
21760 1 : return i13 | 0;
21761 1 : }
21762 1 : do {
21763 1 : i2 = (i10 + i12 | 0) >>> 1;
21764 1 : i3 = (HEAP32[i4 + (i2 + -1 << 4) + 8 >> 2] | 0) == 0;
21765 1 : i12 = i3 ? i2 : i12;
21766 1 : i10 = i3 ? i10 : i2;
21767 1 : } while ((i12 - i10 | 0) >>> 0 > 1);
21768 1 : STACKTOP = i1;
21769 1 : return i10 | 0;
21770 1 : }
21771 1 : i4 = i6 + 16 | 0;
21772 1 : if ((HEAP32[i4 >> 2] | 0) == 8016) {
21773 1 : i13 = i12;
21774 1 : STACKTOP = i1;
21775 1 : return i13 | 0;
21776 1 : }
21777 1 : i5 = i6 + 12 | 0;
21778 1 : i6 = i6 + 7 | 0;
21779 1 : i9 = i2 + 4 | 0;
21780 1 : i8 = i12 + 1 | 0;
21781 1 : i13 = i12;
21782 1 : i10 = i12;
21783 1 : while (1) {
21784 1 : i12 = i8 + -1 | 0;
21785 1 : L15 : do {
21786 1 : if (i12 >>> 0 < i13 >>> 0) {
21787 1 : i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
21788 1 : } else {
21789 1 : d11 = +(i8 | 0);
21790 1 : HEAPF64[i2 >> 3] = d11 + 1.0;
21791 1 : i13 = (HEAP32[i9 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
21792 1 : if ((i13 | 0) < 0) {
21793 1 : i12 = 0 - i13 | 0;
21794 1 : i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
21795 1 : }
21796 1 : i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
21797 1 : while (1) {
21798 1 : if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
21799 1 : break;
21800 1 : }
21801 1 : i12 = HEAP32[i12 + 28 >> 2] | 0;
21802 1 : if ((i12 | 0) == 0) {
21803 1 : i12 = 5192;
21804 1 : break L15;
21805 1 : }
21806 1 : }
21807 1 : }
21808 1 : } while (0);
21809 1 : if ((HEAP32[i12 + 8 >> 2] | 0) == 0) {
21810 1 : break;
21811 1 : }
21812 1 : i10 = i8 << 1;
21813 1 : if (i10 >>> 0 > 2147483645) {
21814 1 : i7 = 21;
21815 1 : break;
21816 1 : }
21817 1 : i12 = i8;
21818 1 : i8 = i10;
21819 1 : i13 = HEAP32[i3 >> 2] | 0;
21820 1 : i10 = i12;
21821 1 : }
21822 1 : if ((i7 | 0) == 21) {
21823 1 : i8 = i2 + 4 | 0;
21824 1 : i7 = 1;
21825 1 : while (1) {
21826 1 : i10 = i7 + -1 | 0;
21827 1 : L34 : do {
21828 1 : if (i10 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
21829 1 : i9 = (HEAP32[i5 >> 2] | 0) + (i10 << 4) | 0;
21830 1 : } else {
21831 1 : d11 = +(i7 | 0);
21832 1 : HEAPF64[i2 >> 3] = d11 + 1.0;
21833 1 : i9 = (HEAP32[i8 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
21834 1 : if ((i9 | 0) < 0) {
21835 1 : i12 = 0 - i9 | 0;
21836 1 : i9 = (i9 | 0) == (i12 | 0) ? 0 : i12;
21837 1 : }
21838 1 : i9 = (HEAP32[i4 >> 2] | 0) + (((i9 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
21839 1 : while (1) {
21840 1 : if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d11 : 0) {
21841 1 : break;
21842 1 : }
21843 1 : i9 = HEAP32[i9 + 28 >> 2] | 0;
21844 1 : if ((i9 | 0) == 0) {
21845 1 : i9 = 5192;
21846 1 : break L34;
21847 1 : }
21848 1 : }
21849 1 : }
21850 1 : } while (0);
21851 1 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
21852 1 : break;
21853 1 : }
21854 1 : i7 = i7 + 1 | 0;
21855 1 : }
21856 1 : STACKTOP = i1;
21857 1 : return i10 | 0;
21858 1 : }
21859 1 : if (!((i8 - i10 | 0) >>> 0 > 1)) {
21860 1 : i13 = i10;
21861 1 : STACKTOP = i1;
21862 1 : return i13 | 0;
21863 1 : }
21864 1 : i7 = i2 + 4 | 0;
21865 1 : do {
21866 1 : i9 = (i8 + i10 | 0) >>> 1;
21867 1 : i12 = i9 + -1 | 0;
21868 1 : L55 : do {
21869 1 : if (i12 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0) {
21870 1 : i12 = (HEAP32[i5 >> 2] | 0) + (i12 << 4) | 0;
21871 1 : } else {
21872 1 : d11 = +(i9 | 0);
21873 1 : HEAPF64[i2 >> 3] = d11 + 1.0;
21874 1 : i13 = (HEAP32[i7 >> 2] | 0) + (HEAP32[i2 >> 2] | 0) | 0;
21875 1 : if ((i13 | 0) < 0) {
21876 1 : i12 = 0 - i13 | 0;
21877 1 : i13 = (i13 | 0) == (i12 | 0) ? 0 : i12;
21878 1 : }
21879 1 : i12 = (HEAP32[i4 >> 2] | 0) + (((i13 | 0) % ((1 << (HEAPU8[i6] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
21880 1 : while (1) {
21881 1 : if ((HEAP32[i12 + 24 >> 2] | 0) == 3 ? +HEAPF64[i12 + 16 >> 3] == d11 : 0) {
21882 1 : break;
21883 1 : }
21884 1 : i12 = HEAP32[i12 + 28 >> 2] | 0;
21885 1 : if ((i12 | 0) == 0) {
21886 1 : i12 = 5192;
21887 1 : break L55;
21888 1 : }
21889 1 : }
21890 1 : }
21891 1 : } while (0);
21892 1 : i12 = (HEAP32[i12 + 8 >> 2] | 0) == 0;
21893 1 : i8 = i12 ? i9 : i8;
21894 1 : i10 = i12 ? i10 : i9;
21895 1 : } while ((i8 - i10 | 0) >>> 0 > 1);
21896 1 : STACKTOP = i1;
21897 1 : return i10 | 0;
21898 1 : }
21899 1 : function _lua_resume(i4, i3, i7) {
21900 0 : i4 = i4 | 0;
21901 0 : i3 = i3 | 0;
21902 0 : i7 = i7 | 0;
21903 0 : var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0;
21904 0 : i1 = STACKTOP;
21905 0 : if ((i3 | 0) == 0) {
21906 0 : i5 = 1;
21907 0 : } else {
21908 0 : i5 = (HEAPU16[i3 + 38 >> 1] | 0) + 1 & 65535;
21909 0 : }
21910 0 : i3 = i4 + 38 | 0;
21911 0 : HEAP16[i3 >> 1] = i5;
21912 0 : i5 = i4 + 36 | 0;
21913 0 : HEAP16[i5 >> 1] = 0;
21914 0 : i6 = i4 + 8 | 0;
21915 0 : i13 = _luaD_rawrunprotected(i4, 4, (HEAP32[i6 >> 2] | 0) + (0 - i7 << 4) | 0) | 0;
21916 0 : if ((i13 | 0) == -1) {
21917 0 : i18 = 2;
21918 0 : HEAP16[i5 >> 1] = 1;
21919 0 : i17 = HEAP16[i3 >> 1] | 0;
21920 0 : i17 = i17 + -1 << 16 >> 16;
21921 0 : HEAP16[i3 >> 1] = i17;
21922 0 : STACKTOP = i1;
21923 0 : return i18 | 0;
21924 0 : }
21925 0 : if (!(i13 >>> 0 > 1)) {
21926 0 : i18 = i13;
21927 0 : HEAP16[i5 >> 1] = 1;
21928 0 : i17 = HEAP16[i3 >> 1] | 0;
21929 0 : i17 = i17 + -1 << 16 >> 16;
21930 0 : HEAP16[i3 >> 1] = i17;
21931 0 : STACKTOP = i1;
21932 0 : return i18 | 0;
21933 0 : }
21934 0 : i7 = i4 + 16 | 0;
21935 0 : i12 = i4 + 28 | 0;
21936 0 : i11 = i4 + 41 | 0;
21937 0 : i10 = i4 + 68 | 0;
21938 0 : i9 = i4 + 32 | 0;
21939 0 : i8 = i4 + 12 | 0;
21940 0 : L10 : while (1) {
21941 0 : i15 = HEAP32[i7 >> 2] | 0;
21942 0 : if ((i15 | 0) == 0) {
21943 0 : break;
21944 0 : }
21945 0 : while (1) {
21946 0 : i14 = i15 + 18 | 0;
21947 0 : if (!((HEAP8[i14] & 16) == 0)) {
21948 0 : break;
21949 0 : }
21950 0 : i15 = HEAP32[i15 + 8 >> 2] | 0;
21951 0 : if ((i15 | 0) == 0) {
21952 0 : break L10;
21953 0 : }
21954 0 : }
21955 0 : i16 = HEAP32[i12 >> 2] | 0;
21956 0 : i17 = HEAP32[i15 + 20 >> 2] | 0;
21957 0 : i18 = i16 + i17 | 0;
21958 0 : _luaF_close(i4, i18);
21959 0 : if ((i13 | 0) == 4) {
21960 0 : i19 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
21961 0 : HEAP32[i18 >> 2] = i19;
21962 0 : HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
21963 0 : } else if ((i13 | 0) == 6) {
21964 0 : i19 = _luaS_newlstr(i4, 2424, 23) | 0;
21965 0 : HEAP32[i18 >> 2] = i19;
21966 0 : HEAP32[i16 + (i17 + 8) >> 2] = HEAPU8[i19 + 4 | 0] | 0 | 64;
21967 0 : } else {
21968 0 : i19 = HEAP32[i6 >> 2] | 0;
21969 0 : i21 = i19 + -16 | 0;
21970 0 : i20 = HEAP32[i21 + 4 >> 2] | 0;
21971 0 : HEAP32[i18 >> 2] = HEAP32[i21 >> 2];
21972 0 : HEAP32[i18 + 4 >> 2] = i20;
21973 0 : HEAP32[i16 + (i17 + 8) >> 2] = HEAP32[i19 + -8 >> 2];
21974 0 : }
21975 0 : i17 = i16 + (i17 + 16) | 0;
21976 0 : HEAP32[i6 >> 2] = i17;
21977 0 : HEAP32[i7 >> 2] = i15;
21978 0 : HEAP8[i11] = HEAP8[i15 + 36 | 0] | 0;
21979 0 : HEAP16[i5 >> 1] = 0;
21980 0 : if ((i15 | 0) != 0) {
21981 0 : i16 = i15;
21982 0 : do {
21983 0 : i18 = HEAP32[i16 + 4 >> 2] | 0;
21984 0 : i17 = i17 >>> 0 < i18 >>> 0 ? i18 : i17;
21985 0 : i16 = HEAP32[i16 + 8 >> 2] | 0;
21986 0 : } while ((i16 | 0) != 0);
21987 0 : }
21988 0 : i16 = i17 - (HEAP32[i12 >> 2] | 0) | 0;
21989 0 : i17 = (i16 >> 4) + 1 | 0;
21990 0 : i17 = ((i17 | 0) / 8 | 0) + 10 + i17 | 0;
21991 0 : i17 = (i17 | 0) > 1e6 ? 1e6 : i17;
21992 0 : if ((i16 | 0) <= 15999984 ? (i17 | 0) < (HEAP32[i9 >> 2] | 0) : 0) {
21993 0 : _luaD_reallocstack(i4, i17);
21994 0 : }
21995 0 : HEAP32[i10 >> 2] = HEAP32[i15 + 32 >> 2];
21996 0 : HEAP8[i14] = HEAPU8[i14] | 0 | 32;
21997 0 : HEAP8[i15 + 37 | 0] = i13;
21998 0 : i13 = _luaD_rawrunprotected(i4, 5, 0) | 0;
21999 0 : if (!(i13 >>> 0 > 1)) {
22000 0 : i2 = 24;
22001 0 : break;
22002 0 : }
22003 0 : }
22004 0 : if ((i2 | 0) == 24) {
22005 0 : HEAP16[i5 >> 1] = 1;
22006 0 : i21 = HEAP16[i3 >> 1] | 0;
22007 0 : i21 = i21 + -1 << 16 >> 16;
22008 0 : HEAP16[i3 >> 1] = i21;
22009 0 : STACKTOP = i1;
22010 0 : return i13 | 0;
22011 0 : }
22012 0 : HEAP8[i4 + 6 | 0] = i13;
22013 0 : i2 = HEAP32[i6 >> 2] | 0;
22014 0 : if ((i13 | 0) == 4) {
22015 0 : i21 = HEAP32[(HEAP32[i8 >> 2] | 0) + 180 >> 2] | 0;
22016 0 : HEAP32[i2 >> 2] = i21;
22017 0 : HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
22018 0 : } else if ((i13 | 0) == 6) {
22019 0 : i21 = _luaS_newlstr(i4, 2424, 23) | 0;
22020 0 : HEAP32[i2 >> 2] = i21;
22021 0 : HEAP32[i2 + 8 >> 2] = HEAPU8[i21 + 4 | 0] | 0 | 64;
22022 0 : } else {
22023 0 : i19 = i2 + -16 | 0;
22024 0 : i20 = HEAP32[i19 + 4 >> 2] | 0;
22025 0 : i21 = i2;
22026 0 : HEAP32[i21 >> 2] = HEAP32[i19 >> 2];
22027 0 : HEAP32[i21 + 4 >> 2] = i20;
22028 0 : HEAP32[i2 + 8 >> 2] = HEAP32[i2 + -8 >> 2];
22029 0 : }
22030 0 : i21 = i2 + 16 | 0;
22031 0 : HEAP32[i6 >> 2] = i21;
22032 0 : HEAP32[(HEAP32[i7 >> 2] | 0) + 4 >> 2] = i21;
22033 0 : i21 = i13;
22034 0 : HEAP16[i5 >> 1] = 1;
22035 0 : i20 = HEAP16[i3 >> 1] | 0;
22036 0 : i20 = i20 + -1 << 16 >> 16;
22037 0 : HEAP16[i3 >> 1] = i20;
22038 0 : STACKTOP = i1;
22039 0 : return i21 | 0;
22040 1 : }
22041 10 : function _luaK_goiftrue(i1, i3) {
22042 10 : i1 = i1 | 0;
22043 10 : i3 = i3 | 0;
22044 10 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
22045 10 : i2 = STACKTOP;
22046 10 : _luaK_dischargevars(i1, i3);
22047 10 : i12 = HEAP32[i3 >> 2] | 0;
22048 10 : do {
22049 10 : if ((i12 | 0) == 10) {
22050 10 : i9 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
22051 10 : i5 = i3 + 8 | 0;
22052 10 : i8 = HEAP32[i5 >> 2] | 0;
22053 10 : i7 = i9 + (i8 << 2) | 0;
22054 10 : if (!((i8 | 0) > 0 ? (i10 = i9 + (i8 + -1 << 2) | 0, i6 = HEAP32[i10 >> 2] | 0, (HEAP8[5584 + (i6 & 63) | 0] | 0) < 0) : 0)) {
22055 10 : i10 = i7;
22056 10 : i6 = HEAP32[i7 >> 2] | 0;
22057 10 : }
22058 10 : HEAP32[i10 >> 2] = ((i6 & 16320 | 0) == 0) << 6 | i6 & -16321;
22059 10 : i5 = HEAP32[i5 >> 2] | 0;
22060 10 : i8 = 18;
22061 10 : } else if (!((i12 | 0) == 2 | (i12 | 0) == 5 | (i12 | 0) == 4)) {
22062 10 : i5 = i3 + 8 | 0;
22063 10 : if ((i12 | 0) == 6) {
22064 10 : i8 = 14;
22065 10 : } else if ((i12 | 0) == 11 ? (i11 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 >> 2] << 2) >> 2] | 0, (i11 & 63 | 0) == 20) : 0) {
22066 10 : i5 = i1 + 20 | 0;
22067 10 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -1;
22068 10 : i5 = _condjump(i1, 27, i11 >>> 23, 0, 1) | 0;
22069 10 : i8 = 18;
22070 10 : break;
22071 10 : } else {
22072 10 : i8 = 9;
22073 10 : }
22074 10 : if ((i8 | 0) == 9) {
22075 10 : i12 = i1 + 48 | 0;
22076 10 : i10 = HEAP8[i12] | 0;
22077 10 : i11 = (i10 & 255) + 1 | 0;
22078 10 : i6 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
22079 10 : do {
22080 10 : if (i11 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
22081 10 : if (i11 >>> 0 > 249) {
22082 10 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
22083 10 : } else {
22084 10 : HEAP8[i6] = i11;
22085 10 : i9 = HEAP8[i12] | 0;
22086 10 : break;
22087 10 : }
22088 10 : } else {
22089 10 : i9 = i10;
22090 10 : }
22091 10 : } while (0);
22092 10 : i11 = (i9 & 255) + 1 | 0;
22093 10 : HEAP8[i12] = i11;
22094 10 : _discharge2reg(i1, i3, (i11 & 255) + -1 | 0);
22095 10 : if ((HEAP32[i3 >> 2] | 0) == 6) {
22096 10 : i8 = 14;
22097 10 : }
22098 10 : }
22099 10 : if (((i8 | 0) == 14 ? (i7 = HEAP32[i5 >> 2] | 0, (i7 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i7 | 0) : 0) {
22100 10 : i12 = i1 + 48 | 0;
22101 10 : HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
22102 10 : }
22103 10 : i5 = _condjump(i1, 28, 255, HEAP32[i5 >> 2] | 0, 0) | 0;
22104 10 : i8 = 18;
22105 10 : }
22106 10 : } while (0);
22107 10 : do {
22108 10 : if ((i8 | 0) == 18 ? (i4 = i3 + 20 | 0, !((i5 | 0) == -1)) : 0) {
22109 10 : i8 = HEAP32[i4 >> 2] | 0;
22110 10 : if ((i8 | 0) == -1) {
22111 10 : HEAP32[i4 >> 2] = i5;
22112 10 : break;
22113 10 : }
22114 10 : i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
22115 10 : while (1) {
22116 10 : i7 = i4 + (i8 << 2) | 0;
22117 10 : i6 = HEAP32[i7 >> 2] | 0;
22118 10 : i9 = (i6 >>> 14) + -131071 | 0;
22119 10 : if ((i9 | 0) == -1) {
22120 10 : break;
22121 10 : }
22122 10 : i9 = i8 + 1 + i9 | 0;
22123 10 : if ((i9 | 0) == -1) {
22124 10 : break;
22125 10 : } else {
22126 10 : i8 = i9;
22127 10 : }
22128 10 : }
22129 10 : i4 = i5 + ~i8 | 0;
22130 10 : if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
22131 10 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
22132 10 : } else {
22133 10 : HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
22134 10 : break;
22135 10 : }
22136 10 : }
22137 10 : } while (0);
22138 10 : i3 = i3 + 16 | 0;
22139 10 : i4 = HEAP32[i3 >> 2] | 0;
22140 10 : HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
22141 10 : i5 = i1 + 28 | 0;
22142 10 : if ((i4 | 0) == -1) {
22143 10 : HEAP32[i3 >> 2] = -1;
22144 10 : STACKTOP = i2;
22145 10 : return;
22146 10 : }
22147 10 : i8 = HEAP32[i5 >> 2] | 0;
22148 10 : if ((i8 | 0) == -1) {
22149 10 : HEAP32[i5 >> 2] = i4;
22150 10 : HEAP32[i3 >> 2] = -1;
22151 10 : STACKTOP = i2;
22152 10 : return;
22153 10 : }
22154 10 : i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
22155 10 : while (1) {
22156 10 : i5 = i7 + (i8 << 2) | 0;
22157 10 : i6 = HEAP32[i5 >> 2] | 0;
22158 10 : i9 = (i6 >>> 14) + -131071 | 0;
22159 10 : if ((i9 | 0) == -1) {
22160 10 : break;
22161 10 : }
22162 10 : i9 = i8 + 1 + i9 | 0;
22163 10 : if ((i9 | 0) == -1) {
22164 10 : break;
22165 10 : } else {
22166 10 : i8 = i9;
22167 10 : }
22168 10 : }
22169 10 : i4 = i4 + ~i8 | 0;
22170 10 : if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
22171 10 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
22172 10 : }
22173 10 : HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
22174 10 : HEAP32[i3 >> 2] = -1;
22175 10 : STACKTOP = i2;
22176 10 : return;
22177 10 : }
22178 35 : function _luaO_str2d(i1, i3, i5) {
22179 35 : i1 = i1 | 0;
22180 35 : i3 = i3 | 0;
22181 35 : i5 = i5 | 0;
22182 35 : var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, d9 = 0.0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
22183 35 : i2 = STACKTOP;
22184 35 : STACKTOP = STACKTOP + 16 | 0;
22185 35 : i4 = i2;
22186 35 : if ((_strpbrk(i1, 5464) | 0) != 0) {
22187 35 : i13 = 0;
22188 35 : STACKTOP = i2;
22189 35 : return i13 | 0;
22190 35 : }
22191 35 : do {
22192 35 : if ((_strpbrk(i1, 5472) | 0) == 0) {
22193 35 : d9 = +_strtod(i1, i4);
22194 35 : i10 = HEAP32[i4 >> 2] | 0;
22195 35 : } else {
22196 35 : HEAP32[i4 >> 2] = i1;
22197 35 : i8 = i1;
22198 35 : while (1) {
22199 35 : i6 = HEAP8[i8] | 0;
22200 35 : i10 = i8 + 1 | 0;
22201 35 : if ((HEAP8[(i6 & 255) + 10913 | 0] & 8) == 0) {
22202 35 : break;
22203 35 : } else {
22204 35 : i8 = i10;
22205 35 : }
22206 35 : }
22207 35 : if (i6 << 24 >> 24 == 43) {
22208 35 : i6 = 0;
22209 35 : i8 = i10;
22210 35 : } else if (i6 << 24 >> 24 == 45) {
22211 35 : i6 = 1;
22212 35 : i8 = i10;
22213 35 : } else {
22214 35 : i6 = 0;
22215 35 : }
22216 35 : if ((HEAP8[i8] | 0) == 48 ? (i13 = HEAP8[i8 + 1 | 0] | 0, i13 << 24 >> 24 == 88 | i13 << 24 >> 24 == 120) : 0) {
22217 35 : i10 = i8 + 2 | 0;
22218 35 : i8 = HEAP8[i10] | 0;
22219 35 : i12 = i8 & 255;
22220 35 : i11 = HEAP8[i12 + 10913 | 0] | 0;
22221 35 : if ((i11 & 16) == 0) {
22222 35 : d9 = 0.0;
22223 35 : i11 = i8;
22224 35 : i8 = 0;
22225 35 : } else {
22226 35 : d9 = 0.0;
22227 35 : i8 = 0;
22228 35 : while (1) {
22229 35 : if ((i11 & 2) == 0) {
22230 35 : i11 = (i12 | 32) + -87 | 0;
22231 35 : } else {
22232 35 : i11 = i12 + -48 | 0;
22233 35 : }
22234 35 : d9 = d9 * 16.0 + +(i11 | 0);
22235 35 : i8 = i8 + 1 | 0;
22236 35 : i10 = i10 + 1 | 0;
22237 35 : i13 = HEAP8[i10] | 0;
22238 35 : i12 = i13 & 255;
22239 35 : i11 = HEAP8[i12 + 10913 | 0] | 0;
22240 35 : if ((i11 & 16) == 0) {
22241 35 : i11 = i13;
22242 35 : break;
22243 35 : }
22244 35 : }
22245 35 : }
22246 35 : if (i11 << 24 >> 24 == 46) {
22247 35 : i10 = i10 + 1 | 0;
22248 35 : i13 = HEAPU8[i10] | 0;
22249 35 : i11 = HEAP8[i13 + 10913 | 0] | 0;
22250 35 : if ((i11 & 16) == 0) {
22251 35 : i12 = 0;
22252 35 : } else {
22253 35 : i12 = 0;
22254 35 : do {
22255 35 : if ((i11 & 2) == 0) {
22256 35 : i11 = (i13 | 32) + -87 | 0;
22257 35 : } else {
22258 35 : i11 = i13 + -48 | 0;
22259 35 : }
22260 35 : d9 = d9 * 16.0 + +(i11 | 0);
22261 35 : i12 = i12 + 1 | 0;
22262 35 : i10 = i10 + 1 | 0;
22263 35 : i13 = HEAPU8[i10] | 0;
22264 35 : i11 = HEAP8[i13 + 10913 | 0] | 0;
22265 35 : } while (!((i11 & 16) == 0));
22266 35 : }
22267 35 : } else {
22268 35 : i12 = 0;
22269 35 : }
22270 35 : if ((i12 | i8 | 0) != 0) {
22271 35 : i8 = Math_imul(i12, -4) | 0;
22272 35 : HEAP32[i4 >> 2] = i10;
22273 35 : i13 = HEAP8[i10] | 0;
22274 35 : if (i13 << 24 >> 24 == 80 | i13 << 24 >> 24 == 112) {
22275 35 : i13 = i10 + 1 | 0;
22276 35 : i11 = HEAP8[i13] | 0;
22277 35 : if (i11 << 24 >> 24 == 45) {
22278 35 : i11 = 1;
22279 35 : i13 = i10 + 2 | 0;
22280 35 : } else if (i11 << 24 >> 24 == 43) {
22281 35 : i11 = 0;
22282 35 : i13 = i10 + 2 | 0;
22283 35 : } else {
22284 35 : i11 = 0;
22285 35 : }
22286 35 : i12 = HEAP8[i13] | 0;
22287 35 : if (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0)) {
22288 35 : i10 = i13;
22289 35 : i7 = 0;
22290 35 : do {
22291 35 : i10 = i10 + 1 | 0;
22292 35 : i7 = (i12 << 24 >> 24) + -48 + (i7 * 10 | 0) | 0;
22293 35 : i12 = HEAP8[i10] | 0;
22294 35 : } while (!((HEAP8[(i12 & 255) + 10913 | 0] & 2) == 0));
22295 35 : i8 = ((i11 | 0) == 0 ? i7 : 0 - i7 | 0) + i8 | 0;
22296 35 : i7 = 29;
22297 35 : }
22298 35 : } else {
22299 35 : i7 = 29;
22300 35 : }
22301 35 : if ((i7 | 0) == 29) {
22302 35 : HEAP32[i4 >> 2] = i10;
22303 35 : }
22304 35 : if ((i6 | 0) != 0) {
22305 35 : d9 = -d9;
22306 35 : }
22307 35 : d9 = +_ldexp(d9, i8);
22308 35 : break;
22309 35 : }
22310 35 : }
22311 35 : HEAPF64[i5 >> 3] = 0.0;
22312 35 : i13 = 0;
22313 35 : STACKTOP = i2;
22314 35 : return i13 | 0;
22315 35 : }
22316 35 : } while (0);
22317 35 : HEAPF64[i5 >> 3] = d9;
22318 35 : if ((i10 | 0) == (i1 | 0)) {
22319 35 : i13 = 0;
22320 35 : STACKTOP = i2;
22321 35 : return i13 | 0;
22322 35 : }
22323 35 : if (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0)) {
22324 35 : do {
22325 35 : i10 = i10 + 1 | 0;
22326 35 : } while (!((HEAP8[(HEAPU8[i10] | 0) + 10913 | 0] & 8) == 0));
22327 35 : HEAP32[i4 >> 2] = i10;
22328 35 : }
22329 35 : i13 = (i10 | 0) == (i1 + i3 | 0) | 0;
22330 35 : STACKTOP = i2;
22331 35 : return i13 | 0;
22332 35 : }
22333 38 : function _luaV_equalobj_(i2, i4, i5) {
22334 38 : i2 = i2 | 0;
22335 38 : i4 = i4 | 0;
22336 38 : i5 = i5 | 0;
22337 38 : var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
22338 38 : i1 = STACKTOP;
22339 38 : i3 = i4 + 8 | 0;
22340 38 : L1 : do {
22341 38 : switch (HEAP32[i3 >> 2] & 63 | 0) {
22342 38 : case 7:
22343 38 : {
22344 38 : i6 = HEAP32[i4 >> 2] | 0;
22345 38 : i7 = HEAP32[i5 >> 2] | 0;
22346 38 : if ((i6 | 0) == (i7 | 0)) {
22347 38 : i7 = 1;
22348 38 : STACKTOP = i1;
22349 38 : return i7 | 0;
22350 38 : }
22351 38 : if ((i2 | 0) == 0) {
22352 38 : i7 = 0;
22353 38 : STACKTOP = i1;
22354 38 : return i7 | 0;
22355 38 : } else {
22356 38 : i6 = _get_equalTM(i2, HEAP32[i6 + 8 >> 2] | 0, HEAP32[i7 + 8 >> 2] | 0) | 0;
22357 38 : break L1;
22358 38 : }
22359 38 : }
22360 38 : case 5:
22361 38 : {
22362 38 : i7 = HEAP32[i4 >> 2] | 0;
22363 38 : i6 = HEAP32[i5 >> 2] | 0;
22364 38 : if ((i7 | 0) == (i6 | 0)) {
22365 38 : i7 = 1;
22366 38 : STACKTOP = i1;
22367 38 : return i7 | 0;
22368 38 : }
22369 38 : if ((i2 | 0) == 0) {
22370 38 : i7 = 0;
22371 38 : STACKTOP = i1;
22372 38 : return i7 | 0;
22373 38 : } else {
22374 38 : i6 = _get_equalTM(i2, HEAP32[i7 + 8 >> 2] | 0, HEAP32[i6 + 8 >> 2] | 0) | 0;
22375 38 : break L1;
22376 38 : }
22377 38 : }
22378 38 : case 4:
22379 38 : {
22380 38 : i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
22381 38 : STACKTOP = i1;
22382 38 : return i7 | 0;
22383 38 : }
22384 38 : case 20:
22385 38 : {
22386 38 : i7 = _luaS_eqlngstr(HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
22387 38 : STACKTOP = i1;
22388 38 : return i7 | 0;
22389 38 : }
22390 38 : case 3:
22391 38 : {
22392 38 : i7 = +HEAPF64[i4 >> 3] == +HEAPF64[i5 >> 3] | 0;
22393 38 : STACKTOP = i1;
22394 38 : return i7 | 0;
22395 38 : }
22396 38 : case 1:
22397 38 : {
22398 38 : i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
22399 38 : STACKTOP = i1;
22400 38 : return i7 | 0;
22401 38 : }
22402 38 : case 22:
22403 38 : {
22404 38 : i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
22405 38 : STACKTOP = i1;
22406 38 : return i7 | 0;
22407 38 : }
22408 38 : case 2:
22409 38 : {
22410 38 : i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
22411 38 : STACKTOP = i1;
22412 38 : return i7 | 0;
22413 38 : }
22414 38 : case 0:
22415 38 : {
22416 38 : i7 = 1;
22417 38 : STACKTOP = i1;
22418 38 : return i7 | 0;
22419 38 : }
22420 38 : default:
22421 38 : {
22422 38 : i7 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0) | 0;
22423 38 : STACKTOP = i1;
22424 38 : return i7 | 0;
22425 38 : }
22426 38 : }
22427 38 : } while (0);
22428 38 : if ((i6 | 0) == 0) {
22429 38 : i7 = 0;
22430 38 : STACKTOP = i1;
22431 38 : return i7 | 0;
22432 38 : }
22433 38 : i7 = i2 + 8 | 0;
22434 38 : i10 = HEAP32[i7 >> 2] | 0;
22435 38 : i9 = i2 + 28 | 0;
22436 38 : i8 = i10 - (HEAP32[i9 >> 2] | 0) | 0;
22437 38 : HEAP32[i7 >> 2] = i10 + 16;
22438 38 : i13 = i6;
22439 38 : i12 = HEAP32[i13 + 4 >> 2] | 0;
22440 38 : i11 = i10;
22441 38 : HEAP32[i11 >> 2] = HEAP32[i13 >> 2];
22442 38 : HEAP32[i11 + 4 >> 2] = i12;
22443 38 : HEAP32[i10 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
22444 38 : i10 = HEAP32[i7 >> 2] | 0;
22445 38 : HEAP32[i7 >> 2] = i10 + 16;
22446 38 : i11 = i4;
22447 38 : i4 = HEAP32[i11 + 4 >> 2] | 0;
22448 38 : i6 = i10;
22449 38 : HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
22450 38 : HEAP32[i6 + 4 >> 2] = i4;
22451 38 : HEAP32[i10 + 8 >> 2] = HEAP32[i3 >> 2];
22452 38 : i3 = HEAP32[i7 >> 2] | 0;
22453 38 : HEAP32[i7 >> 2] = i3 + 16;
22454 38 : i10 = i5;
22455 38 : i6 = HEAP32[i10 + 4 >> 2] | 0;
22456 38 : i4 = i3;
22457 38 : HEAP32[i4 >> 2] = HEAP32[i10 >> 2];
22458 38 : HEAP32[i4 + 4 >> 2] = i6;
22459 38 : HEAP32[i3 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
22460 38 : _luaD_call(i2, (HEAP32[i7 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
22461 38 : i2 = HEAP32[i9 >> 2] | 0;
22462 38 : i3 = HEAP32[i7 >> 2] | 0;
22463 38 : i4 = i3 + -16 | 0;
22464 38 : HEAP32[i7 >> 2] = i4;
22465 38 : i5 = HEAP32[i4 + 4 >> 2] | 0;
22466 38 : i6 = i2 + i8 | 0;
22467 38 : HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
22468 38 : HEAP32[i6 + 4 >> 2] = i5;
22469 38 : HEAP32[i2 + (i8 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
22470 38 : i2 = HEAP32[i7 >> 2] | 0;
22471 38 : i3 = HEAP32[i2 + 8 >> 2] | 0;
22472 38 : if ((i3 | 0) != 0) {
22473 38 : if ((i3 | 0) == 1) {
22474 38 : i2 = (HEAP32[i2 >> 2] | 0) != 0;
22475 38 : } else {
22476 38 : i2 = 1;
22477 38 : }
22478 38 : } else {
22479 38 : i2 = 0;
22480 38 : }
22481 38 : i13 = i2 & 1;
22482 38 : STACKTOP = i1;
22483 38 : return i13 | 0;
22484 38 : }
22485 2 : function _forbody(i1, i5, i6, i4, i9) {
22486 2 : i1 = i1 | 0;
22487 2 : i5 = i5 | 0;
22488 2 : i6 = i6 | 0;
22489 2 : i4 = i4 | 0;
22490 2 : i9 = i9 | 0;
22491 2 : var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0;
22492 2 : i3 = STACKTOP;
22493 2 : STACKTOP = STACKTOP + 32 | 0;
22494 2 : i8 = i3 + 12 | 0;
22495 2 : i19 = i3;
22496 2 : i11 = i1 + 48 | 0;
22497 2 : i7 = HEAP32[i11 >> 2] | 0;
22498 2 : i18 = i7 + 46 | 0;
22499 2 : i22 = (HEAPU8[i18] | 0) + 3 | 0;
22500 2 : HEAP8[i18] = i22;
22501 2 : i21 = i7 + 20 | 0;
22502 2 : i17 = i7 + 12 | 0;
22503 2 : i2 = i7 + 40 | 0;
22504 2 : i20 = HEAP32[(HEAP32[i7 >> 2] | 0) + 24 >> 2] | 0;
22505 2 : i10 = HEAP32[HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] >> 2] | 0;
22506 2 : HEAP32[i20 + ((HEAP16[i10 + ((i22 & 255) + -3 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
22507 2 : HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -2 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
22508 2 : HEAP32[i20 + ((HEAP16[i10 + ((HEAPU8[i18] | 0) + -1 + (HEAP32[i2 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i21 >> 2];
22509 2 : i2 = i1 + 16 | 0;
22510 2 : if ((HEAP32[i2 >> 2] | 0) != 259) {
22511 2 : _error_expected(i1, 259);
22512 2 : }
22513 2 : _luaX_next(i1);
22514 2 : i10 = (i9 | 0) != 0;
22515 2 : if (i10) {
22516 2 : i9 = _luaK_codeABx(i7, 33, i5, 131070) | 0;
22517 2 : } else {
22518 2 : i9 = _luaK_jump(i7) | 0;
22519 2 : }
22520 2 : HEAP8[i19 + 10 | 0] = 0;
22521 2 : HEAP8[i19 + 8 | 0] = HEAP8[i18] | 0;
22522 2 : i17 = HEAP32[(HEAP32[i17 >> 2] | 0) + 64 >> 2] | 0;
22523 2 : HEAP16[i19 + 4 >> 1] = HEAP32[i17 + 28 >> 2];
22524 2 : HEAP16[i19 + 6 >> 1] = HEAP32[i17 + 16 >> 2];
22525 2 : HEAP8[i19 + 9 | 0] = 0;
22526 2 : i17 = i7 + 16 | 0;
22527 2 : HEAP32[i19 >> 2] = HEAP32[i17 >> 2];
22528 2 : HEAP32[i17 >> 2] = i19;
22529 2 : i19 = HEAP32[i11 >> 2] | 0;
22530 2 : i17 = i19 + 46 | 0;
22531 2 : i18 = (HEAPU8[i17] | 0) + i4 | 0;
22532 2 : HEAP8[i17] = i18;
22533 2 : if ((i4 | 0) != 0 ? (i13 = i19 + 20 | 0, i12 = i19 + 40 | 0, i14 = HEAP32[(HEAP32[i19 >> 2] | 0) + 24 >> 2] | 0, i15 = HEAP32[HEAP32[(HEAP32[i19 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0, HEAP32[i14 + ((HEAP16[i15 + ((i18 & 255) - i4 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2], i16 = i4 + -1 | 0, (i16 | 0) != 0) : 0) {
22534 2 : do {
22535 2 : HEAP32[i14 + ((HEAP16[i15 + ((HEAPU8[i17] | 0) - i16 + (HEAP32[i12 >> 2] | 0) << 1) >> 1] | 0) * 12 | 0) + 4 >> 2] = HEAP32[i13 >> 2];
22536 2 : i16 = i16 + -1 | 0;
22537 2 : } while ((i16 | 0) != 0);
22538 2 : }
22539 2 : _luaK_reserveregs(i7, i4);
22540 2 : i11 = HEAP32[i11 >> 2] | 0;
22541 2 : HEAP8[i8 + 10 | 0] = 0;
22542 2 : HEAP8[i8 + 8 | 0] = HEAP8[i11 + 46 | 0] | 0;
22543 2 : i22 = HEAP32[(HEAP32[i11 + 12 >> 2] | 0) + 64 >> 2] | 0;
22544 2 : HEAP16[i8 + 4 >> 1] = HEAP32[i22 + 28 >> 2];
22545 2 : HEAP16[i8 + 6 >> 1] = HEAP32[i22 + 16 >> 2];
22546 2 : HEAP8[i8 + 9 | 0] = 0;
22547 2 : i22 = i11 + 16 | 0;
22548 2 : HEAP32[i8 >> 2] = HEAP32[i22 >> 2];
22549 2 : HEAP32[i22 >> 2] = i8;
22550 2 : L13 : do {
22551 2 : i8 = HEAP32[i2 >> 2] | 0;
22552 2 : switch (i8 | 0) {
22553 2 : case 277:
22554 2 : case 286:
22555 2 : case 262:
22556 2 : case 261:
22557 2 : case 260:
22558 2 : {
22559 2 : break L13;
22560 2 : }
22561 2 : default:
22562 2 : {}
22563 2 : }
22564 2 : _statement(i1);
22565 2 : } while ((i8 | 0) != 274);
22566 2 : _leaveblock(i11);
22567 2 : _leaveblock(i7);
22568 2 : _luaK_patchtohere(i7, i9);
22569 2 : if (i10) {
22570 2 : i21 = _luaK_codeABx(i7, 32, i5, 131070) | 0;
22571 2 : i22 = i9 + 1 | 0;
22572 2 : _luaK_patchlist(i7, i21, i22);
22573 2 : _luaK_fixline(i7, i6);
22574 2 : STACKTOP = i3;
22575 2 : return;
22576 2 : } else {
22577 2 : _luaK_codeABC(i7, 34, i5, 0, i4) | 0;
22578 2 : _luaK_fixline(i7, i6);
22579 2 : i21 = _luaK_codeABx(i7, 35, i5 + 2 | 0, 131070) | 0;
22580 2 : i22 = i9 + 1 | 0;
22581 2 : _luaK_patchlist(i7, i21, i22);
22582 2 : _luaK_fixline(i7, i6);
22583 2 : STACKTOP = i3;
22584 2 : return;
22585 2 : }
22586 2 : }
22587 1 : function _dotty(i1) {
22588 0 : i1 = i1 | 0;
22589 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
22590 0 : i6 = STACKTOP;
22591 0 : STACKTOP = STACKTOP + 16 | 0;
22592 0 : i3 = i6;
22593 0 : i4 = i6 + 4 | 0;
22594 0 : i2 = HEAP32[20] | 0;
22595 0 : HEAP32[20] = 0;
22596 0 : _lua_settop(i1, 0);
22597 0 : if ((_pushline(i1, 1) | 0) == 0) {
22598 0 : _lua_settop(i1, 0);
22599 0 : i10 = HEAP32[_stdout >> 2] | 0;
22600 0 : _fputc(10, i10 | 0) | 0;
22601 0 : _fflush(i10 | 0) | 0;
22602 0 : HEAP32[20] = i2;
22603 0 : STACKTOP = i6;
22604 0 : return;
22605 0 : }
22606 0 : i5 = HEAP32[_stderr >> 2] | 0;
22607 0 : L4 : while (1) {
22608 0 : i8 = _lua_tolstring(i1, 1, i4) | 0;
22609 0 : i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
22610 0 : L6 : do {
22611 0 : if ((i8 | 0) == 3) {
22612 0 : while (1) {
22613 0 : i8 = _lua_tolstring(i1, -1, i3) | 0;
22614 0 : i7 = HEAP32[i3 >> 2] | 0;
22615 0 : if (!(i7 >>> 0 > 4)) {
22616 0 : break;
22617 0 : }
22618 0 : if ((_strcmp(i8 + (i7 + -5) | 0, 264) | 0) != 0) {
22619 0 : break;
22620 0 : }
22621 0 : _lua_settop(i1, -2);
22622 0 : if ((_pushline(i1, 0) | 0) == 0) {
22623 0 : i7 = 23;
22624 0 : break L4;
22625 0 : }
22626 0 : _lua_pushlstring(i1, 184, 1) | 0;
22627 0 : _lua_insert(i1, -2);
22628 0 : _lua_concat(i1, 3);
22629 0 : i8 = _lua_tolstring(i1, 1, i4) | 0;
22630 0 : i8 = _luaL_loadbufferx(i1, i8, HEAP32[i4 >> 2] | 0, 256, 0) | 0;
22631 0 : if ((i8 | 0) != 3) {
22632 0 : i7 = 9;
22633 0 : break L6;
22634 0 : }
22635 0 : }
22636 0 : _lua_remove(i1, 1);
22637 0 : i8 = 3;
22638 0 : i7 = 10;
22639 0 : } else {
22640 0 : i7 = 9;
22641 0 : }
22642 0 : } while (0);
22643 0 : do {
22644 0 : if ((i7 | 0) == 9) {
22645 0 : _lua_remove(i1, 1);
22646 0 : if ((i8 | 0) == -1) {
22647 0 : i7 = 23;
22648 0 : break L4;
22649 0 : } else if ((i8 | 0) != 0) {
22650 0 : i7 = 10;
22651 0 : break;
22652 0 : }
22653 0 : i9 = _lua_gettop(i1) | 0;
22654 0 : _lua_pushcclosure(i1, 142, 0);
22655 0 : _lua_insert(i1, i9);
22656 0 : HEAP32[48] = i1;
22657 0 : _signal(2, 1) | 0;
22658 0 : i10 = _lua_pcallk(i1, 0, -1, i9, 0, 0) | 0;
22659 0 : _signal(2, 0) | 0;
22660 0 : _lua_remove(i1, i9);
22661 0 : if ((i10 | 0) == 0) {
22662 0 : i7 = 17;
22663 0 : } else {
22664 0 : i9 = 0;
22665 0 : i7 = 12;
22666 0 : }
22667 0 : }
22668 0 : } while (0);
22669 0 : if ((i7 | 0) == 10) {
22670 0 : i9 = (i8 | 0) == 0;
22671 0 : i7 = 12;
22672 0 : }
22673 0 : do {
22674 0 : if ((i7 | 0) == 12) {
22675 0 : i7 = 0;
22676 0 : if ((_lua_type(i1, -1) | 0) == 0) {
22677 0 : if (i9) {
22678 0 : i7 = 17;
22679 0 : break;
22680 0 : } else {
22681 0 : break;
22682 0 : }
22683 0 : }
22684 0 : i10 = _lua_tolstring(i1, -1, 0) | 0;
22685 0 : i8 = HEAP32[20] | 0;
22686 0 : if ((i8 | 0) != 0) {
22687 0 : HEAP32[i3 >> 2] = i8;
22688 0 : _fprintf(i5 | 0, 496, i3 | 0) | 0;
22689 0 : _fflush(i5 | 0) | 0;
22690 0 : }
22691 0 : HEAP32[i3 >> 2] = (i10 | 0) == 0 ? 48 : i10;
22692 0 : _fprintf(i5 | 0, 912, i3 | 0) | 0;
22693 0 : _fflush(i5 | 0) | 0;
22694 0 : _lua_settop(i1, -2);
22695 0 : _lua_gc(i1, 2, 0) | 0;
22696 0 : if (i9) {
22697 0 : i7 = 17;
22698 0 : }
22699 0 : }
22700 0 : } while (0);
22701 0 : if (((i7 | 0) == 17 ? (0, (_lua_gettop(i1) | 0) > 0) : 0) ? (_luaL_checkstack(i1, 20, 112), _lua_getglobal(i1, 144), _lua_insert(i1, 1), (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -1 | 0, 0, 0, 0, 0) | 0) != 0) : 0) {
22702 0 : i7 = HEAP32[20] | 0;
22703 0 : HEAP32[i3 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
22704 0 : i8 = _lua_pushfstring(i1, 152, i3) | 0;
22705 0 : if ((i7 | 0) != 0) {
22706 0 : HEAP32[i3 >> 2] = i7;
22707 0 : _fprintf(i5 | 0, 496, i3 | 0) | 0;
22708 0 : _fflush(i5 | 0) | 0;
22709 0 : }
22710 0 : HEAP32[i3 >> 2] = i8;
22711 0 : _fprintf(i5 | 0, 912, i3 | 0) | 0;
22712 0 : _fflush(i5 | 0) | 0;
22713 0 : }
22714 0 : _lua_settop(i1, 0);
22715 0 : if ((_pushline(i1, 1) | 0) == 0) {
22716 0 : i7 = 23;
22717 0 : break;
22718 0 : }
22719 0 : }
22720 0 : if ((i7 | 0) == 23) {
22721 0 : _lua_settop(i1, 0);
22722 0 : i10 = HEAP32[_stdout >> 2] | 0;
22723 0 : _fputc(10, i10 | 0) | 0;
22724 0 : _fflush(i10 | 0) | 0;
22725 0 : HEAP32[20] = i2;
22726 0 : STACKTOP = i6;
22727 0 : return;
22728 0 : }
22729 1 : }
22730 9 : function _test_then_block(i5, i1) {
22731 9 : i5 = i5 | 0;
22732 9 : i1 = i1 | 0;
22733 9 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
22734 9 : i2 = STACKTOP;
22735 9 : STACKTOP = STACKTOP + 48 | 0;
22736 9 : i10 = i2 + 24 | 0;
22737 9 : i9 = i2;
22738 9 : i8 = i5 + 48 | 0;
22739 9 : i4 = HEAP32[i8 >> 2] | 0;
22740 9 : _luaX_next(i5);
22741 9 : _subexpr(i5, i9, 0) | 0;
22742 9 : i3 = i5 + 16 | 0;
22743 9 : if ((HEAP32[i3 >> 2] | 0) != 275) {
22744 9 : _error_expected(i5, 275);
22745 9 : }
22746 9 : _luaX_next(i5);
22747 9 : i14 = HEAP32[i3 >> 2] | 0;
22748 9 : do {
22749 9 : if ((i14 | 0) == 258 | (i14 | 0) == 266) {
22750 9 : _luaK_goiffalse(HEAP32[i8 >> 2] | 0, i9);
22751 9 : HEAP8[i10 + 10 | 0] = 0;
22752 9 : HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
22753 9 : i11 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
22754 9 : HEAP16[i10 + 4 >> 1] = HEAP32[i11 + 28 >> 2];
22755 9 : HEAP16[i10 + 6 >> 1] = HEAP32[i11 + 16 >> 2];
22756 9 : HEAP8[i10 + 9 | 0] = 0;
22757 9 : i11 = i4 + 16 | 0;
22758 9 : HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
22759 9 : HEAP32[i11 >> 2] = i10;
22760 9 : i11 = HEAP32[i9 + 16 >> 2] | 0;
22761 9 : i10 = HEAP32[i5 + 4 >> 2] | 0;
22762 9 : i14 = (HEAP32[i3 >> 2] | 0) == 266;
22763 9 : _luaX_next(i5);
22764 9 : do {
22765 9 : if (i14) {
22766 9 : if ((HEAP32[i3 >> 2] | 0) == 288) {
22767 9 : i7 = HEAP32[i5 + 24 >> 2] | 0;
22768 9 : _luaX_next(i5);
22769 9 : break;
22770 9 : } else {
22771 9 : _error_expected(i5, 288);
22772 9 : }
22773 9 : } else {
22774 9 : i7 = _luaS_new(HEAP32[i5 + 52 >> 2] | 0, 6304) | 0;
22775 9 : }
22776 9 : } while (0);
22777 9 : i14 = HEAP32[i5 + 64 >> 2] | 0;
22778 9 : i12 = i14 + 12 | 0;
22779 9 : i13 = i14 + 16 | 0;
22780 9 : i9 = HEAP32[i13 >> 2] | 0;
22781 9 : i14 = i14 + 20 | 0;
22782 9 : if ((i9 | 0) < (HEAP32[i14 >> 2] | 0)) {
22783 9 : i14 = HEAP32[i12 >> 2] | 0;
22784 9 : } else {
22785 9 : i14 = _luaM_growaux_(HEAP32[i5 + 52 >> 2] | 0, HEAP32[i12 >> 2] | 0, i14, 16, 32767, 6312) | 0;
22786 9 : HEAP32[i12 >> 2] = i14;
22787 9 : }
22788 9 : HEAP32[i14 + (i9 << 4) >> 2] = i7;
22789 9 : i14 = HEAP32[i12 >> 2] | 0;
22790 9 : HEAP32[i14 + (i9 << 4) + 8 >> 2] = i10;
22791 9 : HEAP8[i14 + (i9 << 4) + 12 | 0] = HEAP8[(HEAP32[i8 >> 2] | 0) + 46 | 0] | 0;
22792 9 : HEAP32[(HEAP32[i12 >> 2] | 0) + (i9 << 4) + 4 >> 2] = i11;
22793 9 : HEAP32[i13 >> 2] = (HEAP32[i13 >> 2] | 0) + 1;
22794 9 : _findlabel(i5, i9) | 0;
22795 9 : L18 : while (1) {
22796 9 : switch (HEAP32[i3 >> 2] | 0) {
22797 9 : case 286:
22798 9 : case 262:
22799 9 : case 261:
22800 9 : case 260:
22801 9 : {
22802 9 : break L18;
22803 9 : }
22804 9 : case 285:
22805 9 : case 59:
22806 9 : {
22807 9 : break;
22808 9 : }
22809 9 : default:
22810 9 : {
22811 9 : i6 = 16;
22812 9 : break L18;
22813 9 : }
22814 9 : }
22815 9 : _statement(i5);
22816 9 : }
22817 9 : if ((i6 | 0) == 16) {
22818 9 : i6 = _luaK_jump(i4) | 0;
22819 9 : break;
22820 9 : }
22821 9 : _leaveblock(i4);
22822 9 : STACKTOP = i2;
22823 9 : return;
22824 9 : } else {
22825 9 : _luaK_goiftrue(HEAP32[i8 >> 2] | 0, i9);
22826 9 : HEAP8[i10 + 10 | 0] = 0;
22827 9 : HEAP8[i10 + 8 | 0] = HEAP8[i4 + 46 | 0] | 0;
22828 9 : i6 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] | 0;
22829 9 : HEAP16[i10 + 4 >> 1] = HEAP32[i6 + 28 >> 2];
22830 9 : HEAP16[i10 + 6 >> 1] = HEAP32[i6 + 16 >> 2];
22831 9 : HEAP8[i10 + 9 | 0] = 0;
22832 9 : i6 = i4 + 16 | 0;
22833 9 : HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
22834 9 : HEAP32[i6 >> 2] = i10;
22835 9 : i6 = HEAP32[i9 + 20 >> 2] | 0;
22836 9 : }
22837 9 : } while (0);
22838 9 : L26 : do {
22839 9 : i7 = HEAP32[i3 >> 2] | 0;
22840 9 : switch (i7 | 0) {
22841 9 : case 277:
22842 9 : case 286:
22843 9 : case 262:
22844 9 : case 261:
22845 9 : case 260:
22846 9 : {
22847 9 : break L26;
22848 9 : }
22849 9 : default:
22850 9 : {}
22851 9 : }
22852 9 : _statement(i5);
22853 9 : } while ((i7 | 0) != 274);
22854 9 : _leaveblock(i4);
22855 9 : if (((HEAP32[i3 >> 2] | 0) + -260 | 0) >>> 0 < 2) {
22856 9 : _luaK_concat(i4, i1, _luaK_jump(i4) | 0);
22857 9 : }
22858 9 : _luaK_patchtohere(i4, i6);
22859 9 : STACKTOP = i2;
22860 9 : return;
22861 9 : }
22862 1 : function _luaL_gsub(i2, i13, i11, i10) {
22863 0 : i2 = i2 | 0;
22864 0 : i13 = i13 | 0;
22865 0 : i11 = i11 | 0;
22866 0 : i10 = i10 | 0;
22867 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i12 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
22868 0 : i1 = STACKTOP;
22869 0 : STACKTOP = STACKTOP + 1056 | 0;
22870 0 : i8 = i1;
22871 0 : i4 = i1 + 8 | 0;
22872 0 : i9 = _strlen(i11 | 0) | 0;
22873 0 : i6 = i4 + 12 | 0;
22874 0 : HEAP32[i6 >> 2] = i2;
22875 0 : i3 = i4 + 16 | 0;
22876 0 : HEAP32[i4 >> 2] = i3;
22877 0 : i5 = i4 + 8 | 0;
22878 0 : HEAP32[i5 >> 2] = 0;
22879 0 : i7 = i4 + 4 | 0;
22880 0 : HEAP32[i7 >> 2] = 1024;
22881 0 : i12 = _strstr(i13, i11) | 0;
22882 0 : if ((i12 | 0) == 0) {
22883 0 : i14 = 0;
22884 0 : i17 = 1024;
22885 0 : i16 = i2;
22886 0 : } else {
22887 0 : i14 = 0;
22888 0 : i17 = 1024;
22889 0 : i16 = i2;
22890 0 : do {
22891 0 : i15 = i12 - i13 | 0;
22892 0 : if ((i17 - i14 | 0) >>> 0 < i15 >>> 0) {
22893 0 : i17 = i17 << 1;
22894 0 : i17 = (i17 - i14 | 0) >>> 0 < i15 >>> 0 ? i14 + i15 | 0 : i17;
22895 0 : if (i17 >>> 0 < i14 >>> 0 | (i17 - i14 | 0) >>> 0 < i15 >>> 0) {
22896 0 : _luaL_error(i16, 1272, i8) | 0;
22897 0 : }
22898 0 : i14 = _lua_newuserdata(i16, i17) | 0;
22899 0 : _memcpy(i14 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
22900 0 : if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
22901 0 : _lua_remove(i16, -2);
22902 0 : }
22903 0 : HEAP32[i4 >> 2] = i14;
22904 0 : HEAP32[i7 >> 2] = i17;
22905 0 : i16 = i14;
22906 0 : i14 = HEAP32[i5 >> 2] | 0;
22907 0 : } else {
22908 0 : i16 = HEAP32[i4 >> 2] | 0;
22909 0 : }
22910 0 : _memcpy(i16 + i14 | 0, i13 | 0, i15 | 0) | 0;
22911 0 : i15 = (HEAP32[i5 >> 2] | 0) + i15 | 0;
22912 0 : HEAP32[i5 >> 2] = i15;
22913 0 : i13 = _strlen(i10 | 0) | 0;
22914 0 : i14 = HEAP32[i6 >> 2] | 0;
22915 0 : i16 = HEAP32[i7 >> 2] | 0;
22916 0 : if ((i16 - i15 | 0) >>> 0 < i13 >>> 0) {
22917 0 : i16 = i16 << 1;
22918 0 : i16 = (i16 - i15 | 0) >>> 0 < i13 >>> 0 ? i15 + i13 | 0 : i16;
22919 0 : if (i16 >>> 0 < i15 >>> 0 | (i16 - i15 | 0) >>> 0 < i13 >>> 0) {
22920 0 : _luaL_error(i14, 1272, i8) | 0;
22921 0 : }
22922 0 : i15 = _lua_newuserdata(i14, i16) | 0;
22923 0 : _memcpy(i15 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
22924 0 : if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
22925 0 : _lua_remove(i14, -2);
22926 0 : }
22927 0 : HEAP32[i4 >> 2] = i15;
22928 0 : HEAP32[i7 >> 2] = i16;
22929 0 : i14 = i15;
22930 0 : i15 = HEAP32[i5 >> 2] | 0;
22931 0 : } else {
22932 0 : i14 = HEAP32[i4 >> 2] | 0;
22933 0 : }
22934 0 : _memcpy(i14 + i15 | 0, i10 | 0, i13 | 0) | 0;
22935 0 : i14 = (HEAP32[i5 >> 2] | 0) + i13 | 0;
22936 0 : HEAP32[i5 >> 2] = i14;
22937 0 : i13 = i12 + i9 | 0;
22938 0 : i12 = _strstr(i13, i11) | 0;
22939 0 : i16 = HEAP32[i6 >> 2] | 0;
22940 0 : i17 = HEAP32[i7 >> 2] | 0;
22941 0 : } while ((i12 | 0) != 0);
22942 0 : }
22943 0 : i9 = _strlen(i13 | 0) | 0;
22944 0 : if ((i17 - i14 | 0) >>> 0 < i9 >>> 0) {
22945 0 : i10 = i17 << 1;
22946 0 : i10 = (i10 - i14 | 0) >>> 0 < i9 >>> 0 ? i14 + i9 | 0 : i10;
22947 0 : if (i10 >>> 0 < i14 >>> 0 | (i10 - i14 | 0) >>> 0 < i9 >>> 0) {
22948 0 : _luaL_error(i16, 1272, i8) | 0;
22949 0 : }
22950 0 : i8 = _lua_newuserdata(i16, i10) | 0;
22951 0 : _memcpy(i8 | 0, HEAP32[i4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
22952 0 : if ((HEAP32[i4 >> 2] | 0) != (i3 | 0)) {
22953 0 : _lua_remove(i16, -2);
22954 0 : }
22955 0 : HEAP32[i4 >> 2] = i8;
22956 0 : HEAP32[i7 >> 2] = i10;
22957 0 : i14 = HEAP32[i5 >> 2] | 0;
22958 0 : } else {
22959 0 : i8 = HEAP32[i4 >> 2] | 0;
22960 0 : }
22961 0 : _memcpy(i8 + i14 | 0, i13 | 0, i9 | 0) | 0;
22962 0 : i17 = (HEAP32[i5 >> 2] | 0) + i9 | 0;
22963 0 : HEAP32[i5 >> 2] = i17;
22964 0 : i5 = HEAP32[i6 >> 2] | 0;
22965 0 : _lua_pushlstring(i5, HEAP32[i4 >> 2] | 0, i17) | 0;
22966 0 : if ((HEAP32[i4 >> 2] | 0) == (i3 | 0)) {
22967 0 : i17 = _lua_tolstring(i2, -1, 0) | 0;
22968 0 : STACKTOP = i1;
22969 0 : return i17 | 0;
22970 0 : }
22971 0 : _lua_remove(i5, -2);
22972 0 : i17 = _lua_tolstring(i2, -1, 0) | 0;
22973 0 : STACKTOP = i1;
22974 0 : return i17 | 0;
22975 1 : }
22976 1 : function _luaK_goiffalse(i1, i3) {
22977 1 : i1 = i1 | 0;
22978 1 : i3 = i3 | 0;
22979 1 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
22980 1 : i2 = STACKTOP;
22981 1 : _luaK_dischargevars(i1, i3);
22982 1 : i9 = HEAP32[i3 >> 2] | 0;
22983 1 : do {
22984 1 : if ((i9 | 0) == 10) {
22985 1 : i4 = HEAP32[i3 + 8 >> 2] | 0;
22986 1 : i8 = 15;
22987 1 : } else if (!((i9 | 0) == 3 | (i9 | 0) == 1)) {
22988 1 : i4 = i3 + 8 | 0;
22989 1 : if ((i9 | 0) == 6) {
22990 1 : i8 = 11;
22991 1 : } else if ((i9 | 0) == 11 ? (i10 = HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0, (i10 & 63 | 0) == 20) : 0) {
22992 1 : i4 = i1 + 20 | 0;
22993 1 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -1;
22994 1 : i4 = _condjump(i1, 27, i10 >>> 23, 0, 0) | 0;
22995 1 : i8 = 15;
22996 1 : break;
22997 1 : } else {
22998 1 : i8 = 6;
22999 1 : }
23000 1 : if ((i8 | 0) == 6) {
23001 1 : i9 = i1 + 48 | 0;
23002 1 : i11 = HEAP8[i9] | 0;
23003 1 : i10 = (i11 & 255) + 1 | 0;
23004 1 : i12 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
23005 1 : do {
23006 1 : if (i10 >>> 0 > (HEAPU8[i12] | 0) >>> 0) {
23007 1 : if (i10 >>> 0 > 249) {
23008 1 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
23009 1 : } else {
23010 1 : HEAP8[i12] = i10;
23011 1 : i7 = HEAP8[i9] | 0;
23012 1 : break;
23013 1 : }
23014 1 : } else {
23015 1 : i7 = i11;
23016 1 : }
23017 1 : } while (0);
23018 1 : i12 = (i7 & 255) + 1 | 0;
23019 1 : HEAP8[i9] = i12;
23020 1 : _discharge2reg(i1, i3, (i12 & 255) + -1 | 0);
23021 1 : if ((HEAP32[i3 >> 2] | 0) == 6) {
23022 1 : i8 = 11;
23023 1 : }
23024 1 : }
23025 1 : if (((i8 | 0) == 11 ? (i6 = HEAP32[i4 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i6 | 0) : 0) {
23026 1 : i12 = i1 + 48 | 0;
23027 1 : HEAP8[i12] = (HEAP8[i12] | 0) + -1 << 24 >> 24;
23028 1 : }
23029 1 : i4 = _condjump(i1, 28, 255, HEAP32[i4 >> 2] | 0, 1) | 0;
23030 1 : i8 = 15;
23031 1 : }
23032 1 : } while (0);
23033 1 : do {
23034 1 : if ((i8 | 0) == 15 ? (i5 = i3 + 16 | 0, !((i4 | 0) == -1)) : 0) {
23035 1 : i8 = HEAP32[i5 >> 2] | 0;
23036 1 : if ((i8 | 0) == -1) {
23037 1 : HEAP32[i5 >> 2] = i4;
23038 1 : break;
23039 1 : }
23040 1 : i5 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
23041 1 : while (1) {
23042 1 : i7 = i5 + (i8 << 2) | 0;
23043 1 : i6 = HEAP32[i7 >> 2] | 0;
23044 1 : i9 = (i6 >>> 14) + -131071 | 0;
23045 1 : if ((i9 | 0) == -1) {
23046 1 : break;
23047 1 : }
23048 1 : i9 = i8 + 1 + i9 | 0;
23049 1 : if ((i9 | 0) == -1) {
23050 1 : break;
23051 1 : } else {
23052 1 : i8 = i9;
23053 1 : }
23054 1 : }
23055 1 : i4 = i4 + ~i8 | 0;
23056 1 : if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
23057 1 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
23058 1 : } else {
23059 1 : HEAP32[i7 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
23060 1 : break;
23061 1 : }
23062 1 : }
23063 1 : } while (0);
23064 1 : i3 = i3 + 20 | 0;
23065 1 : i4 = HEAP32[i3 >> 2] | 0;
23066 1 : HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
23067 1 : i5 = i1 + 28 | 0;
23068 1 : if ((i4 | 0) == -1) {
23069 1 : HEAP32[i3 >> 2] = -1;
23070 1 : STACKTOP = i2;
23071 1 : return;
23072 1 : }
23073 1 : i8 = HEAP32[i5 >> 2] | 0;
23074 1 : if ((i8 | 0) == -1) {
23075 1 : HEAP32[i5 >> 2] = i4;
23076 1 : HEAP32[i3 >> 2] = -1;
23077 1 : STACKTOP = i2;
23078 1 : return;
23079 1 : }
23080 1 : i7 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
23081 1 : while (1) {
23082 1 : i5 = i7 + (i8 << 2) | 0;
23083 1 : i6 = HEAP32[i5 >> 2] | 0;
23084 1 : i9 = (i6 >>> 14) + -131071 | 0;
23085 1 : if ((i9 | 0) == -1) {
23086 1 : break;
23087 1 : }
23088 1 : i9 = i8 + 1 + i9 | 0;
23089 1 : if ((i9 | 0) == -1) {
23090 1 : break;
23091 1 : } else {
23092 1 : i8 = i9;
23093 1 : }
23094 1 : }
23095 1 : i4 = i4 + ~i8 | 0;
23096 1 : if ((((i4 | 0) > -1 ? i4 : 0 - i4 | 0) | 0) > 131071) {
23097 1 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
23098 1 : }
23099 1 : HEAP32[i5 >> 2] = (i4 << 14) + 2147467264 | i6 & 16383;
23100 1 : HEAP32[i3 >> 2] = -1;
23101 1 : STACKTOP = i2;
23102 1 : return;
23103 1 : }
23104 187 : function _luaV_settable(i2, i11, i7, i9) {
23105 187 : i2 = i2 | 0;
23106 187 : i11 = i11 | 0;
23107 187 : i7 = i7 | 0;
23108 187 : i9 = i9 | 0;
23109 187 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i12 = 0, i13 = 0, i14 = 0;
23110 187 : i6 = STACKTOP;
23111 187 : STACKTOP = STACKTOP + 16 | 0;
23112 187 : i5 = i6;
23113 187 : i4 = i2 + 12 | 0;
23114 187 : i3 = i11;
23115 187 : i13 = HEAP32[i11 + 8 >> 2] | 0;
23116 187 : i12 = 0;
23117 187 : while (1) {
23118 187 : i11 = i3 + 8 | 0;
23119 187 : if ((i13 | 0) != 69) {
23120 187 : i14 = _luaT_gettmbyobj(i2, i3, 1) | 0;
23121 187 : i13 = HEAP32[i14 + 8 >> 2] | 0;
23122 187 : if ((i13 | 0) == 0) {
23123 187 : i1 = 16;
23124 187 : break;
23125 187 : }
23126 187 : } else {
23127 187 : i8 = HEAP32[i3 >> 2] | 0;
23128 187 : i13 = _luaH_get(i8, i7) | 0;
23129 187 : if ((HEAP32[i13 + 8 >> 2] | 0) != 0) {
23130 187 : i10 = i13;
23131 187 : break;
23132 187 : }
23133 187 : i14 = HEAP32[i8 + 8 >> 2] | 0;
23134 187 : if ((i14 | 0) == 0) {
23135 187 : i1 = 9;
23136 187 : break;
23137 187 : }
23138 187 : if (!((HEAP8[i14 + 6 | 0] & 2) == 0)) {
23139 187 : i1 = 9;
23140 187 : break;
23141 187 : }
23142 187 : i14 = _luaT_gettm(i14, 1, HEAP32[(HEAP32[i4 >> 2] | 0) + 188 >> 2] | 0) | 0;
23143 187 : if ((i14 | 0) == 0) {
23144 187 : i1 = 9;
23145 187 : break;
23146 187 : }
23147 187 : i13 = HEAP32[i14 + 8 >> 2] | 0;
23148 187 : }
23149 187 : i12 = i12 + 1 | 0;
23150 187 : if ((i13 & 15 | 0) == 6) {
23151 187 : i1 = 18;
23152 187 : break;
23153 187 : }
23154 187 : if ((i12 | 0) < 100) {
23155 187 : i3 = i14;
23156 187 : } else {
23157 187 : i1 = 19;
23158 187 : break;
23159 187 : }
23160 187 : }
23161 187 : if ((i1 | 0) == 9) {
23162 187 : if ((i13 | 0) == 5192) {
23163 187 : i10 = _luaH_newkey(i2, i8, i7) | 0;
23164 187 : } else {
23165 187 : i10 = i13;
23166 187 : }
23167 187 : } else if ((i1 | 0) == 16) {
23168 187 : _luaG_typeerror(i2, i3, 8944);
23169 187 : } else if ((i1 | 0) == 18) {
23170 187 : i13 = i2 + 8 | 0;
23171 187 : i8 = HEAP32[i13 >> 2] | 0;
23172 187 : HEAP32[i13 >> 2] = i8 + 16;
23173 187 : i5 = i14;
23174 187 : i12 = HEAP32[i5 + 4 >> 2] | 0;
23175 187 : i10 = i8;
23176 187 : HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
23177 187 : HEAP32[i10 + 4 >> 2] = i12;
23178 187 : HEAP32[i8 + 8 >> 2] = HEAP32[i14 + 8 >> 2];
23179 187 : i14 = HEAP32[i13 >> 2] | 0;
23180 187 : HEAP32[i13 >> 2] = i14 + 16;
23181 187 : i8 = i3;
23182 187 : i10 = HEAP32[i8 + 4 >> 2] | 0;
23183 187 : i12 = i14;
23184 187 : HEAP32[i12 >> 2] = HEAP32[i8 >> 2];
23185 187 : HEAP32[i12 + 4 >> 2] = i10;
23186 187 : HEAP32[i14 + 8 >> 2] = HEAP32[i11 >> 2];
23187 187 : i14 = HEAP32[i13 >> 2] | 0;
23188 187 : HEAP32[i13 >> 2] = i14 + 16;
23189 187 : i12 = i7;
23190 187 : i11 = HEAP32[i12 + 4 >> 2] | 0;
23191 187 : i10 = i14;
23192 187 : HEAP32[i10 >> 2] = HEAP32[i12 >> 2];
23193 187 : HEAP32[i10 + 4 >> 2] = i11;
23194 187 : HEAP32[i14 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
23195 187 : i14 = HEAP32[i13 >> 2] | 0;
23196 187 : HEAP32[i13 >> 2] = i14 + 16;
23197 187 : i10 = i9;
23198 187 : i11 = HEAP32[i10 + 4 >> 2] | 0;
23199 187 : i12 = i14;
23200 187 : HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
23201 187 : HEAP32[i12 + 4 >> 2] = i11;
23202 187 : HEAP32[i14 + 8 >> 2] = HEAP32[i9 + 8 >> 2];
23203 187 : _luaD_call(i2, (HEAP32[i13 >> 2] | 0) + -64 | 0, 0, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
23204 187 : STACKTOP = i6;
23205 187 : return;
23206 187 : } else if ((i1 | 0) == 19) {
23207 187 : _luaG_runerror(i2, 8976, i5);
23208 187 : }
23209 187 : i12 = i9;
23210 187 : i13 = HEAP32[i12 + 4 >> 2] | 0;
23211 187 : i14 = i10;
23212 187 : HEAP32[i14 >> 2] = HEAP32[i12 >> 2];
23213 187 : HEAP32[i14 + 4 >> 2] = i13;
23214 187 : i14 = i9 + 8 | 0;
23215 187 : HEAP32[i10 + 8 >> 2] = HEAP32[i14 >> 2];
23216 187 : HEAP8[i8 + 6 | 0] = 0;
23217 187 : if ((HEAP32[i14 >> 2] & 64 | 0) == 0) {
23218 187 : STACKTOP = i6;
23219 187 : return;
23220 187 : }
23221 187 : if ((HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0) {
23222 187 : STACKTOP = i6;
23223 187 : return;
23224 187 : }
23225 187 : if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
23226 187 : STACKTOP = i6;
23227 187 : return;
23228 187 : }
23229 187 : _luaC_barrierback_(i2, i8);
23230 187 : STACKTOP = i6;
23231 187 : return;
23232 187 : }
23233 151 : function _luaK_code(i4, i5) {
23234 151 : i4 = i4 | 0;
23235 151 : i5 = i5 | 0;
23236 151 : var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
23237 151 : i2 = STACKTOP;
23238 151 : i1 = HEAP32[i4 >> 2] | 0;
23239 151 : i7 = i4 + 28 | 0;
23240 151 : i15 = HEAP32[i7 >> 2] | 0;
23241 151 : i3 = i4 + 20 | 0;
23242 151 : i8 = HEAP32[i3 >> 2] | 0;
23243 151 : do {
23244 151 : if (!((i15 | 0) == -1)) {
23245 151 : i11 = HEAP32[i1 + 12 >> 2] | 0;
23246 151 : while (1) {
23247 151 : i12 = i11 + (i15 << 2) | 0;
23248 151 : i14 = HEAP32[i12 >> 2] | 0;
23249 151 : i13 = (i14 >>> 14) + -131071 | 0;
23250 151 : if ((i13 | 0) == -1) {
23251 151 : i13 = -1;
23252 151 : } else {
23253 151 : i13 = i15 + 1 + i13 | 0;
23254 151 : }
23255 151 : if ((i15 | 0) > 0 ? (i9 = i11 + (i15 + -1 << 2) | 0, i10 = HEAP32[i9 >> 2] | 0, (HEAP8[5584 + (i10 & 63) | 0] | 0) < 0) : 0) {
23256 151 : i17 = i9;
23257 151 : i16 = i10;
23258 151 : } else {
23259 151 : i17 = i12;
23260 151 : i16 = i14;
23261 151 : }
23262 151 : if ((i16 & 63 | 0) == 28) {
23263 151 : HEAP32[i17 >> 2] = i16 & 8372224 | i16 >>> 23 << 6 | 27;
23264 151 : i14 = i8 + ~i15 | 0;
23265 151 : if ((((i14 | 0) > -1 ? i14 : 0 - i14 | 0) | 0) > 131071) {
23266 151 : i8 = 10;
23267 151 : break;
23268 151 : }
23269 151 : i14 = HEAP32[i12 >> 2] & 16383 | (i14 << 14) + 2147467264;
23270 151 : } else {
23271 151 : i15 = i8 + ~i15 | 0;
23272 151 : if ((((i15 | 0) > -1 ? i15 : 0 - i15 | 0) | 0) > 131071) {
23273 151 : i8 = 13;
23274 151 : break;
23275 151 : }
23276 151 : i14 = (i15 << 14) + 2147467264 | i14 & 16383;
23277 151 : }
23278 151 : HEAP32[i12 >> 2] = i14;
23279 151 : if ((i13 | 0) == -1) {
23280 151 : i8 = 16;
23281 151 : break;
23282 151 : } else {
23283 151 : i15 = i13;
23284 151 : }
23285 151 : }
23286 151 : if ((i8 | 0) == 10) {
23287 151 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
23288 151 : } else if ((i8 | 0) == 13) {
23289 151 : _luaX_syntaxerror(HEAP32[i4 + 12 >> 2] | 0, 10624);
23290 151 : } else if ((i8 | 0) == 16) {
23291 151 : i6 = HEAP32[i3 >> 2] | 0;
23292 151 : break;
23293 151 : }
23294 151 : } else {
23295 151 : i6 = i8;
23296 151 : }
23297 151 : } while (0);
23298 151 : HEAP32[i7 >> 2] = -1;
23299 151 : i7 = i1 + 48 | 0;
23300 151 : if ((i6 | 0) < (HEAP32[i7 >> 2] | 0)) {
23301 151 : i7 = i1 + 12 | 0;
23302 151 : } else {
23303 151 : i6 = i1 + 12 | 0;
23304 151 : HEAP32[i6 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i6 >> 2] | 0, i7, 4, 2147483645, 10616) | 0;
23305 151 : i7 = i6;
23306 151 : i6 = HEAP32[i3 >> 2] | 0;
23307 151 : }
23308 151 : HEAP32[(HEAP32[i7 >> 2] | 0) + (i6 << 2) >> 2] = i5;
23309 151 : i5 = HEAP32[i3 >> 2] | 0;
23310 151 : i6 = i1 + 52 | 0;
23311 151 : i4 = i4 + 12 | 0;
23312 151 : if ((i5 | 0) < (HEAP32[i6 >> 2] | 0)) {
23313 151 : i15 = i1 + 20 | 0;
23314 151 : i17 = i5;
23315 151 : i16 = HEAP32[i4 >> 2] | 0;
23316 151 : i16 = i16 + 8 | 0;
23317 151 : i16 = HEAP32[i16 >> 2] | 0;
23318 151 : i15 = HEAP32[i15 >> 2] | 0;
23319 151 : i17 = i15 + (i17 << 2) | 0;
23320 151 : HEAP32[i17 >> 2] = i16;
23321 151 : i17 = HEAP32[i3 >> 2] | 0;
23322 151 : i16 = i17 + 1 | 0;
23323 151 : HEAP32[i3 >> 2] = i16;
23324 151 : STACKTOP = i2;
23325 151 : return i17 | 0;
23326 151 : } else {
23327 151 : i15 = i1 + 20 | 0;
23328 151 : HEAP32[i15 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i4 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i15 >> 2] | 0, i6, 4, 2147483645, 10616) | 0;
23329 151 : i17 = HEAP32[i3 >> 2] | 0;
23330 151 : i16 = HEAP32[i4 >> 2] | 0;
23331 151 : i16 = i16 + 8 | 0;
23332 151 : i16 = HEAP32[i16 >> 2] | 0;
23333 151 : i15 = HEAP32[i15 >> 2] | 0;
23334 151 : i17 = i15 + (i17 << 2) | 0;
23335 151 : HEAP32[i17 >> 2] = i16;
23336 151 : i17 = HEAP32[i3 >> 2] | 0;
23337 151 : i16 = i17 + 1 | 0;
23338 151 : HEAP32[i3 >> 2] = i16;
23339 151 : STACKTOP = i2;
23340 151 : return i17 | 0;
23341 151 : }
23342 151 : return 0;
23343 151 : }
23344 1 : function _luaH_next(i9, i5, i2) {
23345 0 : i9 = i9 | 0;
23346 0 : i5 = i5 | 0;
23347 0 : i2 = i2 | 0;
23348 0 : var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
23349 0 : i1 = STACKTOP;
23350 0 : STACKTOP = STACKTOP + 16 | 0;
23351 0 : i8 = i1 + 8 | 0;
23352 0 : i11 = i1;
23353 0 : i3 = i2 + 8 | 0;
23354 0 : i10 = HEAP32[i3 >> 2] | 0;
23355 0 : do {
23356 0 : if ((i10 | 0) != 0) {
23357 0 : if ((((i10 | 0) == 3 ? (d14 = +HEAPF64[i2 >> 3], HEAPF64[i11 >> 3] = d14 + 6755399441055744.0, i12 = HEAP32[i11 >> 2] | 0, +(i12 | 0) == d14) : 0) ? (i12 | 0) > 0 : 0) ? (i13 = HEAP32[i5 + 28 >> 2] | 0, (i12 | 0) <= (i13 | 0)) : 0) {
23358 0 : i6 = i13;
23359 0 : i7 = i12 + -1 | 0;
23360 0 : break;
23361 0 : }
23362 0 : i10 = _mainposition(i5, i2) | 0;
23363 0 : while (1) {
23364 0 : i4 = i10 + 16 | 0;
23365 0 : i11 = i10 + 24 | 0;
23366 0 : i12 = HEAP32[i11 >> 2] | 0;
23367 0 : if ((i12 | 0) == (HEAP32[i3 >> 2] | 0)) {
23368 0 : if ((_luaV_equalobj_(0, i4, i2) | 0) != 0) {
23369 0 : i4 = 15;
23370 0 : break;
23371 0 : }
23372 0 : i12 = HEAP32[i11 >> 2] | 0;
23373 0 : }
23374 0 : if (((i12 | 0) == 11 ? (HEAP32[i3 >> 2] & 64 | 0) != 0 : 0) ? (HEAP32[i4 >> 2] | 0) == (HEAP32[i2 >> 2] | 0) : 0) {
23375 0 : i4 = 15;
23376 0 : break;
23377 0 : }
23378 0 : i10 = HEAP32[i10 + 28 >> 2] | 0;
23379 0 : if ((i10 | 0) == 0) {
23380 0 : i4 = 18;
23381 0 : break;
23382 0 : }
23383 0 : }
23384 0 : if ((i4 | 0) == 15) {
23385 0 : i7 = HEAP32[i5 + 28 >> 2] | 0;
23386 0 : i6 = i7;
23387 0 : i7 = (i10 - (HEAP32[i5 + 16 >> 2] | 0) >> 5) + i7 | 0;
23388 0 : break;
23389 0 : } else if ((i4 | 0) == 18) {
23390 0 : _luaG_runerror(i9, 8064, i8);
23391 0 : }
23392 0 : } else {
23393 0 : i6 = HEAP32[i5 + 28 >> 2] | 0;
23394 0 : i7 = -1;
23395 0 : }
23396 0 : } while (0);
23397 0 : i8 = i5 + 12 | 0;
23398 0 : while (1) {
23399 0 : i9 = i7 + 1 | 0;
23400 0 : if ((i9 | 0) >= (i6 | 0)) {
23401 0 : break;
23402 0 : }
23403 0 : i11 = HEAP32[i8 >> 2] | 0;
23404 0 : i10 = i11 + (i9 << 4) + 8 | 0;
23405 0 : if ((HEAP32[i10 >> 2] | 0) == 0) {
23406 0 : i7 = i9;
23407 0 : } else {
23408 0 : i4 = 21;
23409 0 : break;
23410 0 : }
23411 0 : }
23412 0 : if ((i4 | 0) == 21) {
23413 0 : HEAPF64[i2 >> 3] = +(i7 + 2 | 0);
23414 0 : HEAP32[i3 >> 2] = 3;
23415 0 : i11 = i11 + (i9 << 4) | 0;
23416 0 : i12 = HEAP32[i11 + 4 >> 2] | 0;
23417 0 : i13 = i2 + 16 | 0;
23418 0 : HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
23419 0 : HEAP32[i13 + 4 >> 2] = i12;
23420 0 : HEAP32[i2 + 24 >> 2] = HEAP32[i10 >> 2];
23421 0 : i13 = 1;
23422 0 : STACKTOP = i1;
23423 0 : return i13 | 0;
23424 0 : }
23425 0 : i8 = i9 - i6 | 0;
23426 0 : i6 = 1 << (HEAPU8[i5 + 7 | 0] | 0);
23427 0 : if ((i8 | 0) >= (i6 | 0)) {
23428 0 : i13 = 0;
23429 0 : STACKTOP = i1;
23430 0 : return i13 | 0;
23431 0 : }
23432 0 : i7 = i5 + 16 | 0;
23433 0 : i5 = HEAP32[i7 >> 2] | 0;
23434 0 : while (1) {
23435 0 : i9 = i8 + 1 | 0;
23436 0 : if ((HEAP32[i5 + (i8 << 5) + 8 >> 2] | 0) != 0) {
23437 0 : break;
23438 0 : }
23439 0 : if ((i9 | 0) < (i6 | 0)) {
23440 0 : i8 = i9;
23441 0 : } else {
23442 0 : i2 = 0;
23443 0 : i4 = 27;
23444 0 : break;
23445 0 : }
23446 0 : }
23447 0 : if ((i4 | 0) == 27) {
23448 0 : STACKTOP = i1;
23449 0 : return i2 | 0;
23450 0 : }
23451 0 : i11 = i5 + (i8 << 5) + 16 | 0;
23452 0 : i10 = HEAP32[i11 + 4 >> 2] | 0;
23453 0 : i13 = i2;
23454 0 : HEAP32[i13 >> 2] = HEAP32[i11 >> 2];
23455 0 : HEAP32[i13 + 4 >> 2] = i10;
23456 0 : HEAP32[i3 >> 2] = HEAP32[i5 + (i8 << 5) + 24 >> 2];
23457 0 : i13 = HEAP32[i7 >> 2] | 0;
23458 0 : i10 = i13 + (i8 << 5) | 0;
23459 0 : i11 = HEAP32[i10 + 4 >> 2] | 0;
23460 0 : i12 = i2 + 16 | 0;
23461 0 : HEAP32[i12 >> 2] = HEAP32[i10 >> 2];
23462 0 : HEAP32[i12 + 4 >> 2] = i11;
23463 0 : HEAP32[i2 + 24 >> 2] = HEAP32[i13 + (i8 << 5) + 8 >> 2];
23464 0 : i13 = 1;
23465 0 : STACKTOP = i1;
23466 0 : return i13 | 0;
23467 1 : }
23468 1 : function _g_read(i1, i3, i2) {
23469 0 : i1 = i1 | 0;
23470 0 : i3 = i3 | 0;
23471 0 : i2 = i2 | 0;
23472 0 : var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
23473 0 : i4 = STACKTOP;
23474 0 : STACKTOP = STACKTOP + 1056 | 0;
23475 0 : i7 = i4 + 8 | 0;
23476 0 : i9 = i4;
23477 0 : i10 = _lua_gettop(i1) | 0;
23478 0 : _clearerr(i3 | 0);
23479 0 : L1 : do {
23480 0 : if ((i10 | 0) == 1) {
23481 0 : i11 = i2 + 1 | 0;
23482 0 : i12 = _read_line(i1, i3, 1) | 0;
23483 0 : } else {
23484 0 : _luaL_checkstack(i1, i10 + 19 | 0, 3256);
23485 0 : i6 = i7 + 8 | 0;
23486 0 : i5 = i7 + 8 | 0;
23487 0 : i10 = i10 + -2 | 0;
23488 0 : i11 = i2;
23489 0 : L4 : while (1) {
23490 0 : do {
23491 0 : if ((_lua_type(i1, i11) | 0) == 3) {
23492 0 : i12 = _lua_tointegerx(i1, i11, 0) | 0;
23493 0 : if ((i12 | 0) == 0) {
23494 0 : i12 = _fgetc(i3 | 0) | 0;
23495 0 : _ungetc(i12 | 0, i3 | 0) | 0;
23496 0 : _lua_pushlstring(i1, 0, 0) | 0;
23497 0 : i12 = (i12 | 0) != -1 | 0;
23498 0 : break;
23499 0 : } else {
23500 0 : _luaL_buffinit(i1, i7);
23501 0 : i12 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
23502 0 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i12;
23503 0 : _luaL_pushresult(i7);
23504 0 : i12 = (i12 | 0) != 0 | 0;
23505 0 : break;
23506 0 : }
23507 0 : } else {
23508 0 : i12 = _lua_tolstring(i1, i11, 0) | 0;
23509 0 : if (!((i12 | 0) != 0 ? (HEAP8[i12] | 0) == 42 : 0)) {
23510 0 : _luaL_argerror(i1, i11, 3280) | 0;
23511 0 : }
23512 0 : i12 = HEAP8[i12 + 1 | 0] | 0;
23513 0 : if ((i12 | 0) == 110) {
23514 0 : HEAP32[i7 >> 2] = i9;
23515 0 : if ((_fscanf(i3 | 0, 3312, i7 | 0) | 0) != 1) {
23516 0 : i8 = 14;
23517 0 : break L4;
23518 0 : }
23519 0 : _lua_pushnumber(i1, +HEAPF64[i9 >> 3]);
23520 0 : i12 = 1;
23521 0 : break;
23522 0 : } else if ((i12 | 0) == 108) {
23523 0 : i12 = _read_line(i1, i3, 1) | 0;
23524 0 : break;
23525 0 : } else if ((i12 | 0) == 76) {
23526 0 : i12 = _read_line(i1, i3, 0) | 0;
23527 0 : break;
23528 0 : } else if ((i12 | 0) == 97) {
23529 0 : _luaL_buffinit(i1, i7);
23530 0 : i12 = _fread(_luaL_prepbuffsize(i7, 1024) | 0, 1, 1024, i3 | 0) | 0;
23531 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i12;
23532 0 : if (!(i12 >>> 0 < 1024)) {
23533 0 : i12 = 1024;
23534 0 : do {
23535 0 : i12 = i12 << (i12 >>> 0 < 1073741824);
23536 0 : i13 = _fread(_luaL_prepbuffsize(i7, i12) | 0, 1, i12 | 0, i3 | 0) | 0;
23537 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i13;
23538 0 : } while (!(i13 >>> 0 < i12 >>> 0));
23539 0 : }
23540 0 : _luaL_pushresult(i7);
23541 0 : i12 = 1;
23542 0 : break;
23543 0 : } else {
23544 0 : break L4;
23545 0 : }
23546 0 : }
23547 0 : } while (0);
23548 0 : i11 = i11 + 1 | 0;
23549 0 : if ((i10 | 0) == 0 | (i12 | 0) == 0) {
23550 0 : break L1;
23551 0 : } else {
23552 0 : i10 = i10 + -1 | 0;
23553 0 : }
23554 0 : }
23555 0 : if ((i8 | 0) == 14) {
23556 0 : _lua_pushnil(i1);
23557 0 : i11 = i11 + 1 | 0;
23558 0 : i12 = 0;
23559 0 : break;
23560 0 : }
23561 0 : i13 = _luaL_argerror(i1, i11, 3296) | 0;
23562 0 : STACKTOP = i4;
23563 0 : return i13 | 0;
23564 0 : }
23565 0 : } while (0);
23566 0 : if ((_ferror(i3 | 0) | 0) != 0) {
23567 0 : i13 = _luaL_fileresult(i1, 0, 0) | 0;
23568 0 : STACKTOP = i4;
23569 0 : return i13 | 0;
23570 0 : }
23571 0 : if ((i12 | 0) == 0) {
23572 0 : _lua_settop(i1, -2);
23573 0 : _lua_pushnil(i1);
23574 0 : }
23575 0 : i13 = i11 - i2 | 0;
23576 0 : STACKTOP = i4;
23577 0 : return i13 | 0;
23578 1 : }
23579 1 : function _luaY_parser(i8, i12, i10, i11, i9, i13) {
23580 1 : i8 = i8 | 0;
23581 1 : i12 = i12 | 0;
23582 1 : i10 = i10 | 0;
23583 1 : i11 = i11 | 0;
23584 1 : i9 = i9 | 0;
23585 1 : i13 = i13 | 0;
23586 1 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i14 = 0, i15 = 0;
23587 1 : i2 = STACKTOP;
23588 1 : STACKTOP = STACKTOP + 176 | 0;
23589 1 : i5 = i2 + 156 | 0;
23590 1 : i7 = i2 + 80 | 0;
23591 1 : i4 = i2;
23592 1 : i6 = i2 + 104 | 0;
23593 1 : i3 = _luaF_newLclosure(i8, 1) | 0;
23594 1 : i15 = i8 + 8 | 0;
23595 1 : i14 = HEAP32[i15 >> 2] | 0;
23596 1 : HEAP32[i14 >> 2] = i3;
23597 1 : HEAP32[i14 + 8 >> 2] = 70;
23598 1 : i14 = (HEAP32[i15 >> 2] | 0) + 16 | 0;
23599 1 : HEAP32[i15 >> 2] = i14;
23600 1 : if (((HEAP32[i8 + 24 >> 2] | 0) - i14 | 0) < 16) {
23601 1 : _luaD_growstack(i8, 0);
23602 1 : }
23603 1 : i14 = _luaF_newproto(i8) | 0;
23604 1 : HEAP32[i3 + 12 >> 2] = i14;
23605 1 : HEAP32[i6 >> 2] = i14;
23606 1 : i9 = _luaS_new(i8, i9) | 0;
23607 1 : HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] = i9;
23608 1 : HEAP32[i4 + 60 >> 2] = i10;
23609 1 : i9 = i4 + 64 | 0;
23610 1 : HEAP32[i9 >> 2] = i11;
23611 1 : HEAP32[i11 + 28 >> 2] = 0;
23612 1 : HEAP32[i11 + 16 >> 2] = 0;
23613 1 : HEAP32[i11 + 4 >> 2] = 0;
23614 1 : _luaX_setinput(i8, i4, i12, HEAP32[(HEAP32[i6 >> 2] | 0) + 36 >> 2] | 0, i13);
23615 1 : i10 = HEAP32[i4 + 52 >> 2] | 0;
23616 1 : i13 = i4 + 48 | 0;
23617 1 : HEAP32[i6 + 8 >> 2] = HEAP32[i13 >> 2];
23618 1 : i8 = i6 + 12 | 0;
23619 1 : HEAP32[i8 >> 2] = i4;
23620 1 : HEAP32[i13 >> 2] = i6;
23621 1 : HEAP32[i6 + 20 >> 2] = 0;
23622 1 : HEAP32[i6 + 24 >> 2] = 0;
23623 1 : HEAP32[i6 + 28 >> 2] = -1;
23624 1 : HEAP32[i6 + 32 >> 2] = 0;
23625 1 : HEAP32[i6 + 36 >> 2] = 0;
23626 1 : i13 = i6 + 44 | 0;
23627 1 : HEAP32[i13 + 0 >> 2] = 0;
23628 1 : HEAP8[i13 + 4 | 0] = 0;
23629 1 : HEAP32[i6 + 40 >> 2] = HEAP32[(HEAP32[i9 >> 2] | 0) + 4 >> 2];
23630 1 : i9 = i6 + 16 | 0;
23631 1 : HEAP32[i9 >> 2] = 0;
23632 1 : i13 = HEAP32[i6 >> 2] | 0;
23633 1 : HEAP32[i13 + 36 >> 2] = HEAP32[i4 + 68 >> 2];
23634 1 : HEAP8[i13 + 78 | 0] = 2;
23635 1 : i13 = _luaH_new(i10) | 0;
23636 1 : HEAP32[i6 + 4 >> 2] = i13;
23637 1 : i14 = i10 + 8 | 0;
23638 1 : i15 = HEAP32[i14 >> 2] | 0;
23639 1 : HEAP32[i15 >> 2] = i13;
23640 1 : HEAP32[i15 + 8 >> 2] = 69;
23641 1 : i15 = (HEAP32[i14 >> 2] | 0) + 16 | 0;
23642 1 : HEAP32[i14 >> 2] = i15;
23643 1 : if (((HEAP32[i10 + 24 >> 2] | 0) - i15 | 0) < 16) {
23644 1 : _luaD_growstack(i10, 0);
23645 1 : }
23646 1 : HEAP8[i5 + 10 | 0] = 0;
23647 1 : HEAP8[i5 + 8 | 0] = HEAP8[i6 + 46 | 0] | 0;
23648 1 : i15 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
23649 1 : HEAP16[i5 + 4 >> 1] = HEAP32[i15 + 28 >> 2];
23650 1 : HEAP16[i5 + 6 >> 1] = HEAP32[i15 + 16 >> 2];
23651 1 : HEAP8[i5 + 9 | 0] = 0;
23652 1 : HEAP32[i5 >> 2] = HEAP32[i9 >> 2];
23653 1 : HEAP32[i9 >> 2] = i5;
23654 1 : HEAP8[(HEAP32[i6 >> 2] | 0) + 77 | 0] = 1;
23655 1 : HEAP32[i7 + 16 >> 2] = -1;
23656 1 : HEAP32[i7 + 20 >> 2] = -1;
23657 1 : HEAP32[i7 >> 2] = 7;
23658 1 : HEAP32[i7 + 8 >> 2] = 0;
23659 1 : _newupvalue(i6, HEAP32[i4 + 72 >> 2] | 0, i7) | 0;
23660 1 : _luaX_next(i4);
23661 1 : i5 = i4 + 16 | 0;
23662 1 : L7 : while (1) {
23663 1 : i6 = HEAP32[i5 >> 2] | 0;
23664 1 : switch (i6 | 0) {
23665 1 : case 277:
23666 1 : case 286:
23667 1 : case 262:
23668 1 : case 261:
23669 1 : case 260:
23670 1 : {
23671 1 : break L7;
23672 1 : }
23673 1 : default:
23674 1 : {}
23675 1 : }
23676 1 : _statement(i4);
23677 1 : if ((i6 | 0) == 274) {
23678 1 : i1 = 8;
23679 1 : break;
23680 1 : }
23681 1 : }
23682 1 : if ((i1 | 0) == 8) {
23683 1 : i6 = HEAP32[i5 >> 2] | 0;
23684 1 : }
23685 1 : if ((i6 | 0) == 286) {
23686 1 : _close_func(i4);
23687 1 : STACKTOP = i2;
23688 1 : return i3 | 0;
23689 1 : } else {
23690 1 : _error_expected(i4, 286);
23691 1 : }
23692 1 : return 0;
23693 1 : }
23694 142995 : function _luaV_lessthan(i5, i4, i2) {
23695 142995 : i5 = i5 | 0;
23696 142995 : i4 = i4 | 0;
23697 142995 : i2 = i2 | 0;
23698 142995 : var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
23699 142995 : i1 = STACKTOP;
23700 142995 : i6 = i4 + 8 | 0;
23701 142995 : i7 = HEAP32[i6 >> 2] | 0;
23702 142995 : if ((i7 | 0) == 3) {
23703 142995 : if ((HEAP32[i2 + 8 >> 2] | 0) == 3) {
23704 142995 : i9 = +HEAPF64[i4 >> 3] < +HEAPF64[i2 >> 3] | 0;
23705 142995 : STACKTOP = i1;
23706 142995 : return i9 | 0;
23707 142995 : }
23708 142995 : } else {
23709 142995 : if ((i7 & 15 | 0) == 4 ? (HEAP32[i2 + 8 >> 2] & 15 | 0) == 4 : 0) {
23710 142995 : i6 = HEAP32[i4 >> 2] | 0;
23711 142995 : i4 = HEAP32[i2 >> 2] | 0;
23712 142995 : i3 = i6 + 16 | 0;
23713 142995 : i5 = i4 + 16 | 0;
23714 142995 : i7 = _strcmp(i3, i5) | 0;
23715 142995 : L8 : do {
23716 142995 : if ((i7 | 0) == 0) {
23717 142995 : i2 = HEAP32[i6 + 12 >> 2] | 0;
23718 142995 : i4 = HEAP32[i4 + 12 >> 2] | 0;
23719 142995 : while (1) {
23720 142995 : i7 = _strlen(i3 | 0) | 0;
23721 142995 : i6 = (i7 | 0) == (i2 | 0);
23722 142995 : if ((i7 | 0) == (i4 | 0)) {
23723 142995 : break;
23724 142995 : }
23725 142995 : if (i6) {
23726 142995 : i7 = -1;
23727 142995 : break L8;
23728 142995 : }
23729 142995 : i6 = i7 + 1 | 0;
23730 142995 : i3 = i3 + i6 | 0;
23731 142995 : i5 = i5 + i6 | 0;
23732 142995 : i7 = _strcmp(i3, i5) | 0;
23733 142995 : if ((i7 | 0) == 0) {
23734 142995 : i2 = i2 - i6 | 0;
23735 142995 : i4 = i4 - i6 | 0;
23736 142995 : } else {
23737 142995 : break L8;
23738 142995 : }
23739 142995 : }
23740 142995 : i7 = i6 & 1 ^ 1;
23741 142995 : }
23742 142995 : } while (0);
23743 142995 : i9 = i7 >>> 31;
23744 142995 : STACKTOP = i1;
23745 142995 : return i9 | 0;
23746 142995 : }
23747 142995 : }
23748 142995 : i8 = i5 + 8 | 0;
23749 142995 : i7 = HEAP32[i8 >> 2] | 0;
23750 142995 : i9 = _luaT_gettmbyobj(i5, i4, 13) | 0;
23751 142995 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
23752 142995 : i9 = _luaT_gettmbyobj(i5, i2, 13) | 0;
23753 142995 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
23754 142995 : _luaG_ordererror(i5, i4, i2);
23755 142995 : } else {
23756 142995 : i3 = i9;
23757 142995 : }
23758 142995 : } else {
23759 142995 : i3 = i9;
23760 142995 : }
23761 142995 : i10 = i5 + 28 | 0;
23762 142995 : i9 = i7 - (HEAP32[i10 >> 2] | 0) | 0;
23763 142995 : i11 = HEAP32[i8 >> 2] | 0;
23764 142995 : HEAP32[i8 >> 2] = i11 + 16;
23765 142995 : i13 = i3;
23766 142995 : i12 = HEAP32[i13 + 4 >> 2] | 0;
23767 142995 : i7 = i11;
23768 142995 : HEAP32[i7 >> 2] = HEAP32[i13 >> 2];
23769 142995 : HEAP32[i7 + 4 >> 2] = i12;
23770 142995 : HEAP32[i11 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
23771 142995 : i3 = HEAP32[i8 >> 2] | 0;
23772 142995 : HEAP32[i8 >> 2] = i3 + 16;
23773 142995 : i11 = i4;
23774 142995 : i7 = HEAP32[i11 + 4 >> 2] | 0;
23775 142995 : i4 = i3;
23776 142995 : HEAP32[i4 >> 2] = HEAP32[i11 >> 2];
23777 142995 : HEAP32[i4 + 4 >> 2] = i7;
23778 142995 : HEAP32[i3 + 8 >> 2] = HEAP32[i6 >> 2];
23779 142995 : i3 = HEAP32[i8 >> 2] | 0;
23780 142995 : HEAP32[i8 >> 2] = i3 + 16;
23781 142995 : i4 = i2;
23782 142995 : i7 = HEAP32[i4 + 4 >> 2] | 0;
23783 142995 : i6 = i3;
23784 142995 : HEAP32[i6 >> 2] = HEAP32[i4 >> 2];
23785 142995 : HEAP32[i6 + 4 >> 2] = i7;
23786 142995 : HEAP32[i3 + 8 >> 2] = HEAP32[i2 + 8 >> 2];
23787 142995 : _luaD_call(i5, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i5 + 16 >> 2] | 0) + 18 | 0] & 1);
23788 142995 : i2 = HEAP32[i10 >> 2] | 0;
23789 142995 : i3 = HEAP32[i8 >> 2] | 0;
23790 142995 : i5 = i3 + -16 | 0;
23791 142995 : HEAP32[i8 >> 2] = i5;
23792 142995 : i6 = HEAP32[i5 + 4 >> 2] | 0;
23793 142995 : i7 = i2 + i9 | 0;
23794 142995 : HEAP32[i7 >> 2] = HEAP32[i5 >> 2];
23795 142995 : HEAP32[i7 + 4 >> 2] = i6;
23796 142995 : HEAP32[i2 + (i9 + 8) >> 2] = HEAP32[i3 + -8 >> 2];
23797 142995 : i2 = HEAP32[i8 >> 2] | 0;
23798 142995 : i3 = HEAP32[i2 + 8 >> 2] | 0;
23799 142995 : if ((i3 | 0) != 0) {
23800 142995 : if ((i3 | 0) == 1) {
23801 142995 : i2 = (HEAP32[i2 >> 2] | 0) != 0;
23802 142995 : } else {
23803 142995 : i2 = 1;
23804 142995 : }
23805 142995 : } else {
23806 142995 : i2 = 0;
23807 142995 : }
23808 142995 : i13 = i2 & 1;
23809 142995 : STACKTOP = i1;
23810 142995 : return i13 | 0;
23811 142995 : }
23812 90 : function _discharge2reg(i4, i3, i1) {
23813 90 : i4 = i4 | 0;
23814 90 : i3 = i3 | 0;
23815 90 : i1 = i1 | 0;
23816 90 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
23817 90 : i2 = STACKTOP;
23818 90 : STACKTOP = STACKTOP + 32 | 0;
23819 90 : i9 = i2 + 16 | 0;
23820 90 : i8 = i2;
23821 90 : _luaK_dischargevars(i4, i3);
23822 90 : i10 = HEAP32[i3 >> 2] | 0;
23823 90 : L1 : do {
23824 90 : switch (i10 | 0) {
23825 90 : case 5:
23826 90 : {
23827 90 : d11 = +HEAPF64[i3 + 8 >> 3];
23828 90 : HEAPF64[i9 >> 3] = d11;
23829 90 : i5 = HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 52 >> 2] | 0;
23830 90 : HEAPF64[i8 >> 3] = d11;
23831 90 : HEAP32[i8 + 8 >> 2] = 3;
23832 90 : if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
23833 90 : i10 = i5 + 8 | 0;
23834 90 : i7 = HEAP32[i10 >> 2] | 0;
23835 90 : HEAP32[i10 >> 2] = i7 + 16;
23836 90 : i5 = _luaS_newlstr(i5, i9, 8) | 0;
23837 90 : HEAP32[i7 >> 2] = i5;
23838 90 : HEAP32[i7 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
23839 90 : i5 = _addk(i4, (HEAP32[i10 >> 2] | 0) + -16 | 0, i8) | 0;
23840 90 : HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
23841 90 : } else {
23842 90 : i5 = _addk(i4, i8, i8) | 0;
23843 90 : }
23844 90 : i6 = i1 << 6;
23845 90 : if ((i5 | 0) < 262144) {
23846 90 : _luaK_code(i4, i6 | i5 << 14 | 1) | 0;
23847 90 : break L1;
23848 90 : } else {
23849 90 : _luaK_code(i4, i6 | 2) | 0;
23850 90 : _luaK_code(i4, i5 << 6 | 39) | 0;
23851 90 : break L1;
23852 90 : }
23853 90 : }
23854 90 : case 2:
23855 90 : case 3:
23856 90 : {
23857 90 : _luaK_code(i4, i1 << 6 | ((i10 | 0) == 2) << 23 | 3) | 0;
23858 90 : break;
23859 90 : }
23860 90 : case 4:
23861 90 : {
23862 90 : i6 = HEAP32[i3 + 8 >> 2] | 0;
23863 90 : i5 = i1 << 6;
23864 90 : if ((i6 | 0) < 262144) {
23865 90 : _luaK_code(i4, i5 | i6 << 14 | 1) | 0;
23866 90 : break L1;
23867 90 : } else {
23868 90 : _luaK_code(i4, i5 | 2) | 0;
23869 90 : _luaK_code(i4, i6 << 6 | 39) | 0;
23870 90 : break L1;
23871 90 : }
23872 90 : }
23873 90 : case 1:
23874 90 : {
23875 90 : i9 = i1 + 1 | 0;
23876 90 : i8 = HEAP32[i4 + 20 >> 2] | 0;
23877 90 : do {
23878 90 : if ((i8 | 0) > (HEAP32[i4 + 24 >> 2] | 0) ? (i5 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (i8 + -1 << 2) | 0, i6 = HEAP32[i5 >> 2] | 0, (i6 & 63 | 0) == 4) : 0) {
23879 90 : i10 = i6 >>> 6 & 255;
23880 90 : i8 = i10 + (i6 >>> 23) | 0;
23881 90 : if (!((i10 | 0) <= (i1 | 0) ? (i8 + 1 | 0) >= (i1 | 0) : 0)) {
23882 90 : i7 = 6;
23883 90 : }
23884 90 : if ((i7 | 0) == 6 ? (i10 | 0) < (i1 | 0) | (i10 | 0) > (i9 | 0) : 0) {
23885 90 : break;
23886 90 : }
23887 90 : i4 = (i10 | 0) < (i1 | 0) ? i10 : i1;
23888 90 : HEAP32[i5 >> 2] = i4 << 6 & 16320 | i6 & 8372287 | ((i8 | 0) > (i1 | 0) ? i8 : i1) - i4 << 23;
23889 90 : break L1;
23890 90 : }
23891 90 : } while (0);
23892 90 : _luaK_code(i4, i1 << 6 | 4) | 0;
23893 90 : break;
23894 90 : }
23895 90 : case 6:
23896 90 : {
23897 90 : i5 = HEAP32[i3 + 8 >> 2] | 0;
23898 90 : if ((i5 | 0) != (i1 | 0)) {
23899 90 : _luaK_code(i4, i5 << 23 | i1 << 6) | 0;
23900 90 : }
23901 90 : break;
23902 90 : }
23903 90 : case 11:
23904 90 : {
23905 90 : i10 = (HEAP32[(HEAP32[i4 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i3 + 8 >> 2] << 2) | 0;
23906 90 : HEAP32[i10 >> 2] = HEAP32[i10 >> 2] & -16321 | i1 << 6 & 16320;
23907 90 : break;
23908 90 : }
23909 90 : default:
23910 90 : {
23911 90 : STACKTOP = i2;
23912 90 : return;
23913 90 : }
23914 90 : }
23915 90 : } while (0);
23916 90 : HEAP32[i3 + 8 >> 2] = i1;
23917 90 : HEAP32[i3 >> 2] = 6;
23918 90 : STACKTOP = i2;
23919 90 : return;
23920 90 : }
23921 1 : function _unroll(i3, i4) {
23922 0 : i3 = i3 | 0;
23923 0 : i4 = i4 | 0;
23924 0 : var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
23925 0 : i9 = STACKTOP;
23926 0 : i11 = i3 + 16 | 0;
23927 0 : i13 = HEAP32[i11 >> 2] | 0;
23928 0 : i5 = i3 + 72 | 0;
23929 0 : if ((i13 | 0) == (i5 | 0)) {
23930 0 : STACKTOP = i9;
23931 0 : return;
23932 0 : }
23933 0 : i6 = i3 + 8 | 0;
23934 0 : i10 = i3 + 40 | 0;
23935 0 : i7 = i3 + 20 | 0;
23936 0 : i8 = i3 + 28 | 0;
23937 0 : i4 = i3 + 68 | 0;
23938 0 : do {
23939 0 : i12 = i13 + 18 | 0;
23940 0 : i14 = HEAP8[i12] | 0;
23941 0 : if ((i14 & 1) == 0) {
23942 0 : i14 = i14 & 255;
23943 0 : if ((i14 & 16 | 0) != 0) {
23944 0 : HEAP8[i12] = i14 & 239;
23945 0 : HEAP32[i4 >> 2] = HEAP32[i13 + 32 >> 2];
23946 0 : }
23947 0 : if ((HEAP16[i13 + 16 >> 1] | 0) == -1 ? (i2 = (HEAP32[i11 >> 2] | 0) + 4 | 0, i1 = HEAP32[i6 >> 2] | 0, (HEAP32[i2 >> 2] | 0) >>> 0 < i1 >>> 0) : 0) {
23948 0 : HEAP32[i2 >> 2] = i1;
23949 0 : }
23950 0 : i14 = HEAP8[i12] | 0;
23951 0 : if ((i14 & 32) == 0) {
23952 0 : HEAP8[i13 + 37 | 0] = 1;
23953 0 : }
23954 0 : HEAP8[i12] = i14 & 199 | 8;
23955 0 : i14 = FUNCTION_TABLE_ii[HEAP32[i13 + 28 >> 2] & 255](i3) | 0;
23956 0 : i14 = (HEAP32[i6 >> 2] | 0) + (0 - i14 << 4) | 0;
23957 0 : i13 = HEAP32[i11 >> 2] | 0;
23958 0 : i12 = HEAPU8[i10] | 0;
23959 0 : if ((i12 & 6 | 0) == 0) {
23960 0 : i15 = i13 + 8 | 0;
23961 0 : } else {
23962 0 : if ((i12 & 2 | 0) != 0) {
23963 0 : i14 = i14 - (HEAP32[i8 >> 2] | 0) | 0;
23964 0 : _luaD_hook(i3, 1, -1);
23965 0 : i14 = (HEAP32[i8 >> 2] | 0) + i14 | 0;
23966 0 : }
23967 0 : i15 = i13 + 8 | 0;
23968 0 : HEAP32[i7 >> 2] = HEAP32[(HEAP32[i15 >> 2] | 0) + 28 >> 2];
23969 0 : }
23970 0 : i12 = HEAP32[i13 >> 2] | 0;
23971 0 : i13 = HEAP16[i13 + 16 >> 1] | 0;
23972 0 : HEAP32[i11 >> 2] = HEAP32[i15 >> 2];
23973 0 : L25 : do {
23974 0 : if (!(i13 << 16 >> 16 == 0)) {
23975 0 : i15 = i13 << 16 >> 16;
23976 0 : if (i14 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
23977 0 : i13 = i14;
23978 0 : i14 = i15;
23979 0 : i15 = i12;
23980 0 : while (1) {
23981 0 : i12 = i15 + 16 | 0;
23982 0 : i18 = i13;
23983 0 : i17 = HEAP32[i18 + 4 >> 2] | 0;
23984 0 : i16 = i15;
23985 0 : HEAP32[i16 >> 2] = HEAP32[i18 >> 2];
23986 0 : HEAP32[i16 + 4 >> 2] = i17;
23987 0 : HEAP32[i15 + 8 >> 2] = HEAP32[i13 + 8 >> 2];
23988 0 : i14 = i14 + -1 | 0;
23989 0 : i13 = i13 + 16 | 0;
23990 0 : if ((i14 | 0) == 0) {
23991 0 : break L25;
23992 0 : }
23993 0 : if (i13 >>> 0 < (HEAP32[i6 >> 2] | 0) >>> 0) {
23994 0 : i15 = i12;
23995 0 : } else {
23996 0 : i13 = i14;
23997 0 : break;
23998 0 : }
23999 0 : }
24000 0 : } else {
24001 0 : i13 = i15;
24002 0 : }
24003 0 : if ((i13 | 0) > 0) {
24004 0 : i14 = i13;
24005 0 : i15 = i12;
24006 0 : while (1) {
24007 0 : i14 = i14 + -1 | 0;
24008 0 : HEAP32[i15 + 8 >> 2] = 0;
24009 0 : if ((i14 | 0) <= 0) {
24010 0 : break;
24011 0 : } else {
24012 0 : i15 = i15 + 16 | 0;
24013 0 : }
24014 0 : }
24015 0 : i12 = i12 + (i13 << 4) | 0;
24016 0 : }
24017 0 : }
24018 0 : } while (0);
24019 0 : HEAP32[i6 >> 2] = i12;
24020 0 : } else {
24021 0 : _luaV_finishOp(i3);
24022 0 : _luaV_execute(i3);
24023 0 : }
24024 0 : i13 = HEAP32[i11 >> 2] | 0;
24025 0 : } while ((i13 | 0) != (i5 | 0));
24026 0 : STACKTOP = i9;
24027 0 : return;
24028 1 : }
24029 1 : function _traverseephemeron(i1, i2) {
24030 0 : i1 = i1 | 0;
24031 0 : i2 = i2 | 0;
24032 0 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
24033 0 : i3 = STACKTOP;
24034 0 : i11 = i2 + 16 | 0;
24035 0 : i9 = HEAP32[i11 >> 2] | 0;
24036 0 : i5 = i9 + (1 << (HEAPU8[i2 + 7 | 0] | 0) << 5) | 0;
24037 0 : i10 = i2 + 28 | 0;
24038 0 : i13 = HEAP32[i10 >> 2] | 0;
24039 0 : if ((i13 | 0) > 0) {
24040 0 : i9 = i2 + 12 | 0;
24041 0 : i12 = 0;
24042 0 : i8 = 0;
24043 0 : do {
24044 0 : i14 = HEAP32[i9 >> 2] | 0;
24045 0 : if ((HEAP32[i14 + (i12 << 4) + 8 >> 2] & 64 | 0) != 0 ? (i7 = HEAP32[i14 + (i12 << 4) >> 2] | 0, !((HEAP8[i7 + 5 | 0] & 3) == 0)) : 0) {
24046 0 : _reallymarkobject(i1, i7);
24047 0 : i13 = HEAP32[i10 >> 2] | 0;
24048 0 : i8 = 1;
24049 0 : }
24050 0 : i12 = i12 + 1 | 0;
24051 0 : } while ((i12 | 0) < (i13 | 0));
24052 0 : i9 = HEAP32[i11 >> 2] | 0;
24053 0 : } else {
24054 0 : i8 = 0;
24055 0 : }
24056 0 : if (i9 >>> 0 < i5 >>> 0) {
24057 0 : i7 = 0;
24058 0 : i10 = 0;
24059 0 : do {
24060 0 : i11 = i9 + 8 | 0;
24061 0 : i12 = HEAP32[i11 >> 2] | 0;
24062 0 : i14 = i9 + 24 | 0;
24063 0 : i13 = HEAP32[i14 >> 2] | 0;
24064 0 : i15 = (i13 & 64 | 0) == 0;
24065 0 : L14 : do {
24066 0 : if ((i12 | 0) == 0) {
24067 0 : if (!i15 ? !((HEAP8[(HEAP32[i9 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
24068 0 : HEAP32[i14 >> 2] = 11;
24069 0 : }
24070 0 : } else {
24071 0 : do {
24072 0 : if (i15) {
24073 0 : i6 = i12;
24074 0 : i4 = 18;
24075 0 : } else {
24076 0 : i14 = HEAP32[i9 + 16 >> 2] | 0;
24077 0 : if ((i13 & 15 | 0) == 4) {
24078 0 : if ((i14 | 0) == 0) {
24079 0 : i6 = i12;
24080 0 : i4 = 18;
24081 0 : break;
24082 0 : }
24083 0 : if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
24084 0 : i6 = i12;
24085 0 : i4 = 18;
24086 0 : break;
24087 0 : }
24088 0 : _reallymarkobject(i1, i14);
24089 0 : i6 = HEAP32[i11 >> 2] | 0;
24090 0 : i4 = 18;
24091 0 : break;
24092 0 : }
24093 0 : i11 = (i12 & 64 | 0) == 0;
24094 0 : if ((HEAP8[i14 + 5 | 0] & 3) == 0) {
24095 0 : if (i11) {
24096 0 : break L14;
24097 0 : } else {
24098 0 : break;
24099 0 : }
24100 0 : }
24101 0 : if (i11) {
24102 0 : i7 = 1;
24103 0 : break L14;
24104 0 : }
24105 0 : i7 = 1;
24106 0 : i10 = (HEAP8[(HEAP32[i9 >> 2] | 0) + 5 | 0] & 3) == 0 ? i10 : 1;
24107 0 : break L14;
24108 0 : }
24109 0 : } while (0);
24110 0 : if ((i4 | 0) == 18 ? (i4 = 0, (i6 & 64 | 0) == 0) : 0) {
24111 0 : break;
24112 0 : }
24113 0 : i11 = HEAP32[i9 >> 2] | 0;
24114 0 : if (!((HEAP8[i11 + 5 | 0] & 3) == 0)) {
24115 0 : _reallymarkobject(i1, i11);
24116 0 : i8 = 1;
24117 0 : }
24118 0 : }
24119 0 : } while (0);
24120 0 : i9 = i9 + 32 | 0;
24121 0 : } while (i9 >>> 0 < i5 >>> 0);
24122 0 : if ((i10 | 0) != 0) {
24123 0 : i15 = i1 + 96 | 0;
24124 0 : HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
24125 0 : HEAP32[i15 >> 2] = i2;
24126 0 : i15 = i8;
24127 0 : STACKTOP = i3;
24128 0 : return i15 | 0;
24129 0 : }
24130 0 : if ((i7 | 0) != 0) {
24131 0 : i15 = i1 + 100 | 0;
24132 0 : HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
24133 0 : HEAP32[i15 >> 2] = i2;
24134 0 : i15 = i8;
24135 0 : STACKTOP = i3;
24136 0 : return i15 | 0;
24137 0 : }
24138 0 : }
24139 0 : i15 = i1 + 88 | 0;
24140 0 : HEAP32[i2 + 24 >> 2] = HEAP32[i15 >> 2];
24141 0 : HEAP32[i15 >> 2] = i2;
24142 0 : i15 = i8;
24143 0 : STACKTOP = i3;
24144 0 : return i15 | 0;
24145 1 : }
24146 427137 : function _luaV_gettable(i2, i7, i5, i1) {
24147 427137 : i2 = i2 | 0;
24148 427137 : i7 = i7 | 0;
24149 427137 : i5 = i5 | 0;
24150 427137 : i1 = i1 | 0;
24151 427137 : var i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
24152 427137 : i6 = STACKTOP;
24153 427137 : STACKTOP = STACKTOP + 16 | 0;
24154 427137 : i4 = i6;
24155 427137 : i8 = i2 + 12 | 0;
24156 427137 : i3 = i7;
24157 427137 : i10 = HEAP32[i7 + 8 >> 2] | 0;
24158 427137 : i9 = 0;
24159 427137 : while (1) {
24160 427137 : i7 = i3 + 8 | 0;
24161 427137 : if ((i10 | 0) != 69) {
24162 427137 : i12 = _luaT_gettmbyobj(i2, i3, 0) | 0;
24163 427137 : i10 = HEAP32[i12 + 8 >> 2] | 0;
24164 427137 : if ((i10 | 0) == 0) {
24165 427137 : i8 = 11;
24166 427137 : break;
24167 427137 : }
24168 427137 : } else {
24169 427137 : i12 = HEAP32[i3 >> 2] | 0;
24170 427137 : i11 = _luaH_get(i12, i5) | 0;
24171 427137 : i10 = i11 + 8 | 0;
24172 427137 : if ((HEAP32[i10 >> 2] | 0) != 0) {
24173 427137 : i8 = 9;
24174 427137 : break;
24175 427137 : }
24176 427137 : i12 = HEAP32[i12 + 8 >> 2] | 0;
24177 427137 : if ((i12 | 0) == 0) {
24178 427137 : i8 = 9;
24179 427137 : break;
24180 427137 : }
24181 427137 : if (!((HEAP8[i12 + 6 | 0] & 1) == 0)) {
24182 427137 : i8 = 9;
24183 427137 : break;
24184 427137 : }
24185 427137 : i12 = _luaT_gettm(i12, 0, HEAP32[(HEAP32[i8 >> 2] | 0) + 184 >> 2] | 0) | 0;
24186 427137 : if ((i12 | 0) == 0) {
24187 427137 : i8 = 9;
24188 427137 : break;
24189 427137 : }
24190 427137 : i10 = HEAP32[i12 + 8 >> 2] | 0;
24191 427137 : }
24192 427137 : i9 = i9 + 1 | 0;
24193 427137 : if ((i10 & 15 | 0) == 6) {
24194 427137 : i8 = 13;
24195 427137 : break;
24196 427137 : }
24197 427137 : if ((i9 | 0) < 100) {
24198 427137 : i3 = i12;
24199 427137 : } else {
24200 427137 : i8 = 14;
24201 427137 : break;
24202 427137 : }
24203 427137 : }
24204 427137 : if ((i8 | 0) == 9) {
24205 427137 : i9 = i11;
24206 427137 : i11 = HEAP32[i9 + 4 >> 2] | 0;
24207 427137 : i12 = i1;
24208 427137 : HEAP32[i12 >> 2] = HEAP32[i9 >> 2];
24209 427137 : HEAP32[i12 + 4 >> 2] = i11;
24210 427137 : HEAP32[i1 + 8 >> 2] = HEAP32[i10 >> 2];
24211 427137 : STACKTOP = i6;
24212 427137 : return;
24213 427137 : } else if ((i8 | 0) == 11) {
24214 427137 : _luaG_typeerror(i2, i3, 8944);
24215 427137 : } else if ((i8 | 0) == 13) {
24216 427137 : i10 = i2 + 28 | 0;
24217 427137 : i11 = i1 - (HEAP32[i10 >> 2] | 0) | 0;
24218 427137 : i8 = i2 + 8 | 0;
24219 427137 : i9 = HEAP32[i8 >> 2] | 0;
24220 427137 : HEAP32[i8 >> 2] = i9 + 16;
24221 427137 : i13 = i12;
24222 427137 : i1 = HEAP32[i13 + 4 >> 2] | 0;
24223 427137 : i4 = i9;
24224 427137 : HEAP32[i4 >> 2] = HEAP32[i13 >> 2];
24225 427137 : HEAP32[i4 + 4 >> 2] = i1;
24226 427137 : HEAP32[i9 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
24227 427137 : i12 = HEAP32[i8 >> 2] | 0;
24228 427137 : HEAP32[i8 >> 2] = i12 + 16;
24229 427137 : i9 = HEAP32[i3 + 4 >> 2] | 0;
24230 427137 : i4 = i12;
24231 427137 : HEAP32[i4 >> 2] = HEAP32[i3 >> 2];
24232 427137 : HEAP32[i4 + 4 >> 2] = i9;
24233 427137 : HEAP32[i12 + 8 >> 2] = HEAP32[i7 >> 2];
24234 427137 : i12 = HEAP32[i8 >> 2] | 0;
24235 427137 : HEAP32[i8 >> 2] = i12 + 16;
24236 427137 : i4 = i5;
24237 427137 : i9 = HEAP32[i4 + 4 >> 2] | 0;
24238 427137 : i7 = i12;
24239 427137 : HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
24240 427137 : HEAP32[i7 + 4 >> 2] = i9;
24241 427137 : HEAP32[i12 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
24242 427137 : _luaD_call(i2, (HEAP32[i8 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
24243 427137 : i12 = HEAP32[i10 >> 2] | 0;
24244 427137 : i10 = HEAP32[i8 >> 2] | 0;
24245 427137 : i7 = i10 + -16 | 0;
24246 427137 : HEAP32[i8 >> 2] = i7;
24247 427137 : i8 = HEAP32[i7 + 4 >> 2] | 0;
24248 427137 : i9 = i12 + i11 | 0;
24249 427137 : HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
24250 427137 : HEAP32[i9 + 4 >> 2] = i8;
24251 427137 : HEAP32[i12 + (i11 + 8) >> 2] = HEAP32[i10 + -8 >> 2];
24252 427137 : STACKTOP = i6;
24253 427137 : return;
24254 427137 : } else if ((i8 | 0) == 14) {
24255 427137 : _luaG_runerror(i2, 8952, i4);
24256 427137 : }
24257 427137 : }
24258 1 : function _db_getinfo(i1) {
24259 0 : i1 = i1 | 0;
24260 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
24261 0 : i2 = STACKTOP;
24262 0 : STACKTOP = STACKTOP + 112 | 0;
24263 0 : i3 = i2;
24264 0 : if ((_lua_type(i1, 1) | 0) == 8) {
24265 0 : i4 = _lua_tothread(i1, 1) | 0;
24266 0 : i7 = 1;
24267 0 : } else {
24268 0 : i4 = i1;
24269 0 : i7 = 0;
24270 0 : }
24271 0 : i5 = i7 | 2;
24272 0 : i6 = _luaL_optlstring(i1, i5, 11784, 0) | 0;
24273 0 : i7 = i7 + 1 | 0;
24274 0 : do {
24275 0 : if ((_lua_isnumber(i1, i7) | 0) != 0) {
24276 0 : if ((_lua_getstack(i4, _lua_tointegerx(i1, i7, 0) | 0, i3) | 0) == 0) {
24277 0 : _lua_pushnil(i1);
24278 0 : i7 = 1;
24279 0 : STACKTOP = i2;
24280 0 : return i7 | 0;
24281 0 : }
24282 0 : } else {
24283 0 : if ((_lua_type(i1, i7) | 0) == 6) {
24284 0 : HEAP32[i3 >> 2] = i6;
24285 0 : _lua_pushfstring(i1, 11792, i3) | 0;
24286 0 : i6 = _lua_tolstring(i1, -1, 0) | 0;
24287 0 : _lua_pushvalue(i1, i7);
24288 0 : _lua_xmove(i1, i4, 1);
24289 0 : break;
24290 0 : }
24291 0 : i7 = _luaL_argerror(i1, i7, 11800) | 0;
24292 0 : STACKTOP = i2;
24293 0 : return i7 | 0;
24294 0 : }
24295 0 : } while (0);
24296 0 : if ((_lua_getinfo(i4, i6, i3) | 0) == 0) {
24297 0 : i7 = _luaL_argerror(i1, i5, 11832) | 0;
24298 0 : STACKTOP = i2;
24299 0 : return i7 | 0;
24300 0 : }
24301 0 : _lua_createtable(i1, 0, 2);
24302 0 : if ((_strchr(i6, 83) | 0) != 0) {
24303 0 : _lua_pushstring(i1, HEAP32[i3 + 16 >> 2] | 0) | 0;
24304 0 : _lua_setfield(i1, -2, 11848);
24305 0 : _lua_pushstring(i1, i3 + 36 | 0) | 0;
24306 0 : _lua_setfield(i1, -2, 11856);
24307 0 : _lua_pushinteger(i1, HEAP32[i3 + 24 >> 2] | 0);
24308 0 : _lua_setfield(i1, -2, 11872);
24309 0 : _lua_pushinteger(i1, HEAP32[i3 + 28 >> 2] | 0);
24310 0 : _lua_setfield(i1, -2, 11888);
24311 0 : _lua_pushstring(i1, HEAP32[i3 + 12 >> 2] | 0) | 0;
24312 0 : _lua_setfield(i1, -2, 11904);
24313 0 : }
24314 0 : if ((_strchr(i6, 108) | 0) != 0) {
24315 0 : _lua_pushinteger(i1, HEAP32[i3 + 20 >> 2] | 0);
24316 0 : _lua_setfield(i1, -2, 11912);
24317 0 : }
24318 0 : if ((_strchr(i6, 117) | 0) != 0) {
24319 0 : _lua_pushinteger(i1, HEAPU8[i3 + 32 | 0] | 0);
24320 0 : _lua_setfield(i1, -2, 11928);
24321 0 : _lua_pushinteger(i1, HEAPU8[i3 + 33 | 0] | 0);
24322 0 : _lua_setfield(i1, -2, 11936);
24323 0 : _lua_pushboolean(i1, HEAP8[i3 + 34 | 0] | 0);
24324 0 : _lua_setfield(i1, -2, 11944);
24325 0 : }
24326 0 : if ((_strchr(i6, 110) | 0) != 0) {
24327 0 : _lua_pushstring(i1, HEAP32[i3 + 4 >> 2] | 0) | 0;
24328 0 : _lua_setfield(i1, -2, 11960);
24329 0 : _lua_pushstring(i1, HEAP32[i3 + 8 >> 2] | 0) | 0;
24330 0 : _lua_setfield(i1, -2, 11968);
24331 0 : }
24332 0 : if ((_strchr(i6, 116) | 0) != 0) {
24333 0 : _lua_pushboolean(i1, HEAP8[i3 + 35 | 0] | 0);
24334 0 : _lua_setfield(i1, -2, 11984);
24335 0 : }
24336 0 : if ((_strchr(i6, 76) | 0) != 0) {
24337 0 : if ((i4 | 0) == (i1 | 0)) {
24338 0 : _lua_pushvalue(i1, -2);
24339 0 : _lua_remove(i1, -3);
24340 0 : } else {
24341 0 : _lua_xmove(i4, i1, 1);
24342 0 : }
24343 0 : _lua_setfield(i1, -2, 12e3);
24344 0 : }
24345 0 : if ((_strchr(i6, 102) | 0) == 0) {
24346 0 : i7 = 1;
24347 0 : STACKTOP = i2;
24348 0 : return i7 | 0;
24349 0 : }
24350 0 : if ((i4 | 0) == (i1 | 0)) {
24351 0 : _lua_pushvalue(i1, -2);
24352 0 : _lua_remove(i1, -3);
24353 0 : } else {
24354 0 : _lua_xmove(i4, i1, 1);
24355 0 : }
24356 0 : _lua_setfield(i1, -2, 12016);
24357 0 : i7 = 1;
24358 0 : STACKTOP = i2;
24359 0 : return i7 | 0;
24360 1 : }
24361 1 : function _luaL_traceback(i4, i1, i9, i7) {
24362 0 : i4 = i4 | 0;
24363 0 : i1 = i1 | 0;
24364 0 : i9 = i9 | 0;
24365 0 : i7 = i7 | 0;
24366 0 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0;
24367 0 : i3 = STACKTOP;
24368 0 : STACKTOP = STACKTOP + 208 | 0;
24369 0 : i6 = i3;
24370 0 : i5 = i3 + 100 | 0;
24371 0 : i2 = _lua_gettop(i4) | 0;
24372 0 : i8 = 1;
24373 0 : i10 = 1;
24374 0 : while (1) {
24375 0 : if ((_lua_getstack(i1, i8, i6) | 0) == 0) {
24376 0 : break;
24377 0 : } else {
24378 0 : i10 = i8;
24379 0 : i8 = i8 << 1;
24380 0 : }
24381 0 : }
24382 0 : if ((i10 | 0) < (i8 | 0)) {
24383 0 : while (1) {
24384 0 : i11 = (i8 + i10 | 0) / 2 | 0;
24385 0 : i12 = (_lua_getstack(i1, i11, i6) | 0) == 0;
24386 0 : i8 = i12 ? i11 : i8;
24387 0 : i10 = i12 ? i10 : i11 + 1 | 0;
24388 0 : if ((i10 | 0) >= (i8 | 0)) {
24389 0 : i10 = i8;
24390 0 : break;
24391 0 : }
24392 0 : }
24393 0 : } else {
24394 0 : i10 = i8;
24395 0 : }
24396 0 : i8 = (i10 + -1 | 0) > 22 ? 12 : 0;
24397 0 : if ((i9 | 0) != 0) {
24398 0 : HEAP32[i6 >> 2] = i9;
24399 0 : _lua_pushfstring(i4, 944, i6) | 0;
24400 0 : }
24401 0 : _lua_pushlstring(i4, 952, 16) | 0;
24402 0 : if ((_lua_getstack(i1, i7, i5) | 0) == 0) {
24403 0 : i17 = _lua_gettop(i4) | 0;
24404 0 : i17 = i17 - i2 | 0;
24405 0 : _lua_concat(i4, i17);
24406 0 : STACKTOP = i3;
24407 0 : return;
24408 0 : }
24409 0 : i10 = i10 + -11 | 0;
24410 0 : i13 = i5 + 36 | 0;
24411 0 : i9 = i5 + 20 | 0;
24412 0 : i16 = i5 + 8 | 0;
24413 0 : i12 = i5 + 12 | 0;
24414 0 : i15 = i5 + 24 | 0;
24415 0 : i14 = i5 + 35 | 0;
24416 0 : i11 = i5 + 4 | 0;
24417 0 : do {
24418 0 : i7 = i7 + 1 | 0;
24419 0 : if ((i7 | 0) == (i8 | 0)) {
24420 0 : _lua_pushlstring(i4, 976, 5) | 0;
24421 0 : i7 = i10;
24422 0 : } else {
24423 0 : _lua_getinfo(i1, 984, i5) | 0;
24424 0 : HEAP32[i6 >> 2] = i13;
24425 0 : _lua_pushfstring(i4, 992, i6) | 0;
24426 0 : i17 = HEAP32[i9 >> 2] | 0;
24427 0 : if ((i17 | 0) > 0) {
24428 0 : HEAP32[i6 >> 2] = i17;
24429 0 : _lua_pushfstring(i4, 1e3, i6) | 0;
24430 0 : }
24431 0 : _lua_pushlstring(i4, 1008, 4) | 0;
24432 0 : do {
24433 0 : if ((HEAP8[HEAP32[i16 >> 2] | 0] | 0) == 0) {
24434 0 : i17 = HEAP8[HEAP32[i12 >> 2] | 0] | 0;
24435 0 : if (i17 << 24 >> 24 == 109) {
24436 0 : _lua_pushlstring(i4, 1800, 10) | 0;
24437 0 : break;
24438 0 : } else if (i17 << 24 >> 24 == 67) {
24439 0 : if ((_pushglobalfuncname(i4, i5) | 0) == 0) {
24440 0 : _lua_pushlstring(i4, 1112, 1) | 0;
24441 0 : break;
24442 0 : } else {
24443 0 : HEAP32[i6 >> 2] = _lua_tolstring(i4, -1, 0) | 0;
24444 0 : _lua_pushfstring(i4, 1784, i6) | 0;
24445 0 : _lua_remove(i4, -2);
24446 0 : break;
24447 0 : }
24448 0 : } else {
24449 0 : i17 = HEAP32[i15 >> 2] | 0;
24450 0 : HEAP32[i6 >> 2] = i13;
24451 0 : HEAP32[i6 + 4 >> 2] = i17;
24452 0 : _lua_pushfstring(i4, 1816, i6) | 0;
24453 0 : break;
24454 0 : }
24455 0 : } else {
24456 0 : HEAP32[i6 >> 2] = HEAP32[i11 >> 2];
24457 0 : _lua_pushfstring(i4, 1784, i6) | 0;
24458 0 : }
24459 0 : } while (0);
24460 0 : if ((HEAP8[i14] | 0) != 0) {
24461 0 : _lua_pushlstring(i4, 1016, 20) | 0;
24462 0 : }
24463 0 : _lua_concat(i4, (_lua_gettop(i4) | 0) - i2 | 0);
24464 0 : }
24465 0 : } while ((_lua_getstack(i1, i7, i5) | 0) != 0);
24466 0 : i17 = _lua_gettop(i4) | 0;
24467 0 : i17 = i17 - i2 | 0;
24468 0 : _lua_concat(i4, i17);
24469 0 : STACKTOP = i3;
24470 0 : return;
24471 1 : }
24472 83 : function _luaK_exp2RK(i3, i1) {
24473 83 : i3 = i3 | 0;
24474 83 : i1 = i1 | 0;
24475 83 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0, i12 = 0;
24476 83 : i2 = STACKTOP;
24477 83 : STACKTOP = STACKTOP + 32 | 0;
24478 83 : i7 = i2 + 16 | 0;
24479 83 : i6 = i2;
24480 83 : i4 = i1 + 16 | 0;
24481 83 : i5 = i1 + 20 | 0;
24482 83 : i10 = (HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0);
24483 83 : _luaK_dischargevars(i3, i1);
24484 83 : do {
24485 83 : if (!i10) {
24486 83 : if ((HEAP32[i1 >> 2] | 0) == 6) {
24487 83 : i10 = HEAP32[i1 + 8 >> 2] | 0;
24488 83 : if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
24489 83 : break;
24490 83 : }
24491 83 : if ((i10 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
24492 83 : _exp2reg(i3, i1, i10);
24493 83 : break;
24494 83 : }
24495 83 : }
24496 83 : _luaK_exp2nextreg(i3, i1);
24497 83 : }
24498 83 : } while (0);
24499 83 : i10 = HEAP32[i1 >> 2] | 0;
24500 83 : switch (i10 | 0) {
24501 83 : case 4:
24502 83 : {
24503 83 : i8 = HEAP32[i1 + 8 >> 2] | 0;
24504 83 : i9 = 18;
24505 83 : break;
24506 83 : }
24507 83 : case 1:
24508 83 : case 3:
24509 83 : case 2:
24510 83 : {
24511 83 : if ((HEAP32[i3 + 32 >> 2] | 0) < 256) {
24512 83 : if ((i10 | 0) == 1) {
24513 83 : HEAP32[i6 + 8 >> 2] = 0;
24514 83 : HEAP32[i7 >> 2] = HEAP32[i3 + 4 >> 2];
24515 83 : HEAP32[i7 + 8 >> 2] = 69;
24516 83 : i3 = _addk(i3, i7, i6) | 0;
24517 83 : } else {
24518 83 : HEAP32[i7 >> 2] = (i10 | 0) == 2;
24519 83 : HEAP32[i7 + 8 >> 2] = 1;
24520 83 : i3 = _addk(i3, i7, i7) | 0;
24521 83 : }
24522 83 : HEAP32[i1 + 8 >> 2] = i3;
24523 83 : HEAP32[i1 >> 2] = 4;
24524 83 : i10 = i3 | 256;
24525 83 : STACKTOP = i2;
24526 83 : return i10 | 0;
24527 83 : }
24528 83 : break;
24529 83 : }
24530 83 : case 5:
24531 83 : {
24532 83 : i9 = i1 + 8 | 0;
24533 83 : d11 = +HEAPF64[i9 >> 3];
24534 83 : HEAPF64[i7 >> 3] = d11;
24535 83 : i8 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0;
24536 83 : HEAPF64[i6 >> 3] = d11;
24537 83 : HEAP32[i6 + 8 >> 2] = 3;
24538 83 : if (d11 != d11 | 0.0 != 0.0 | d11 == 0.0) {
24539 83 : i10 = i8 + 8 | 0;
24540 83 : i12 = HEAP32[i10 >> 2] | 0;
24541 83 : HEAP32[i10 >> 2] = i12 + 16;
24542 83 : i8 = _luaS_newlstr(i8, i7, 8) | 0;
24543 83 : HEAP32[i12 >> 2] = i8;
24544 83 : HEAP32[i12 + 8 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
24545 83 : i8 = _addk(i3, (HEAP32[i10 >> 2] | 0) + -16 | 0, i6) | 0;
24546 83 : HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
24547 83 : } else {
24548 83 : i8 = _addk(i3, i6, i6) | 0;
24549 83 : }
24550 83 : HEAP32[i9 >> 2] = i8;
24551 83 : HEAP32[i1 >> 2] = 4;
24552 83 : i9 = 18;
24553 83 : break;
24554 83 : }
24555 83 : default:
24556 83 : {}
24557 83 : }
24558 83 : if ((i9 | 0) == 18 ? (i8 | 0) < 256 : 0) {
24559 83 : i12 = i8 | 256;
24560 83 : STACKTOP = i2;
24561 83 : return i12 | 0;
24562 83 : }
24563 83 : _luaK_dischargevars(i3, i1);
24564 83 : if ((HEAP32[i1 >> 2] | 0) == 6) {
24565 83 : i7 = i1 + 8 | 0;
24566 83 : i6 = HEAP32[i7 >> 2] | 0;
24567 83 : if ((HEAP32[i4 >> 2] | 0) == (HEAP32[i5 >> 2] | 0)) {
24568 83 : i12 = i6;
24569 83 : STACKTOP = i2;
24570 83 : return i12 | 0;
24571 83 : }
24572 83 : if ((i6 | 0) >= (HEAPU8[i3 + 46 | 0] | 0 | 0)) {
24573 83 : _exp2reg(i3, i1, i6);
24574 83 : i12 = HEAP32[i7 >> 2] | 0;
24575 83 : STACKTOP = i2;
24576 83 : return i12 | 0;
24577 83 : }
24578 83 : } else {
24579 83 : i7 = i1 + 8 | 0;
24580 83 : }
24581 83 : _luaK_exp2nextreg(i3, i1);
24582 83 : i12 = HEAP32[i7 >> 2] | 0;
24583 83 : STACKTOP = i2;
24584 83 : return i12 | 0;
24585 83 : }
24586 1 : function _os_date(i1) {
24587 0 : i1 = i1 | 0;
24588 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
24589 0 : i2 = STACKTOP;
24590 0 : STACKTOP = STACKTOP + 1264 | 0;
24591 0 : i4 = i2;
24592 0 : i7 = i2 + 1048 | 0;
24593 0 : i6 = i2 + 1256 | 0;
24594 0 : i3 = i2 + 8 | 0;
24595 0 : i5 = i2 + 1056 | 0;
24596 0 : i12 = _luaL_optlstring(i1, 1, 6064, 0) | 0;
24597 0 : if ((_lua_type(i1, 2) | 0) < 1) {
24598 0 : i8 = _time(0) | 0;
24599 0 : } else {
24600 0 : i8 = ~~+_luaL_checknumber(i1, 2);
24601 0 : }
24602 0 : HEAP32[i7 >> 2] = i8;
24603 0 : if ((HEAP8[i12] | 0) == 33) {
24604 0 : i12 = i12 + 1 | 0;
24605 0 : i10 = _gmtime(i7 | 0) | 0;
24606 0 : } else {
24607 0 : i10 = _localtime(i7 | 0) | 0;
24608 0 : }
24609 0 : if ((i10 | 0) == 0) {
24610 0 : _lua_pushnil(i1);
24611 0 : STACKTOP = i2;
24612 0 : return 1;
24613 0 : }
24614 0 : if ((_strcmp(i12, 6072) | 0) == 0) {
24615 0 : _lua_createtable(i1, 0, 9);
24616 0 : _lua_pushinteger(i1, HEAP32[i10 >> 2] | 0);
24617 0 : _lua_setfield(i1, -2, 5864);
24618 0 : _lua_pushinteger(i1, HEAP32[i10 + 4 >> 2] | 0);
24619 0 : _lua_setfield(i1, -2, 5872);
24620 0 : _lua_pushinteger(i1, HEAP32[i10 + 8 >> 2] | 0);
24621 0 : _lua_setfield(i1, -2, 5880);
24622 0 : _lua_pushinteger(i1, HEAP32[i10 + 12 >> 2] | 0);
24623 0 : _lua_setfield(i1, -2, 5888);
24624 0 : _lua_pushinteger(i1, (HEAP32[i10 + 16 >> 2] | 0) + 1 | 0);
24625 0 : _lua_setfield(i1, -2, 5896);
24626 0 : _lua_pushinteger(i1, (HEAP32[i10 + 20 >> 2] | 0) + 1900 | 0);
24627 0 : _lua_setfield(i1, -2, 5904);
24628 0 : _lua_pushinteger(i1, (HEAP32[i10 + 24 >> 2] | 0) + 1 | 0);
24629 0 : _lua_setfield(i1, -2, 6080);
24630 0 : _lua_pushinteger(i1, (HEAP32[i10 + 28 >> 2] | 0) + 1 | 0);
24631 0 : _lua_setfield(i1, -2, 6088);
24632 0 : i3 = HEAP32[i10 + 32 >> 2] | 0;
24633 0 : if ((i3 | 0) < 0) {
24634 0 : STACKTOP = i2;
24635 0 : return 1;
24636 0 : }
24637 0 : _lua_pushboolean(i1, i3);
24638 0 : _lua_setfield(i1, -2, 5912);
24639 0 : STACKTOP = i2;
24640 0 : return 1;
24641 0 : }
24642 0 : HEAP8[i6] = 37;
24643 0 : _luaL_buffinit(i1, i3);
24644 0 : i11 = i3 + 8 | 0;
24645 0 : i9 = i3 + 4 | 0;
24646 0 : i8 = i6 + 1 | 0;
24647 0 : i7 = i6 + 2 | 0;
24648 0 : while (1) {
24649 0 : i14 = HEAP8[i12] | 0;
24650 0 : if (i14 << 24 >> 24 == 0) {
24651 0 : break;
24652 0 : } else if (!(i14 << 24 >> 24 == 37)) {
24653 0 : i13 = HEAP32[i11 >> 2] | 0;
24654 0 : if (!(i13 >>> 0 < (HEAP32[i9 >> 2] | 0) >>> 0)) {
24655 0 : _luaL_prepbuffsize(i3, 1) | 0;
24656 0 : i13 = HEAP32[i11 >> 2] | 0;
24657 0 : i14 = HEAP8[i12] | 0;
24658 0 : }
24659 0 : HEAP32[i11 >> 2] = i13 + 1;
24660 0 : HEAP8[(HEAP32[i3 >> 2] | 0) + i13 | 0] = i14;
24661 0 : i12 = i12 + 1 | 0;
24662 0 : continue;
24663 0 : }
24664 0 : i13 = i12 + 1 | 0;
24665 0 : i12 = i12 + 2 | 0;
24666 0 : i14 = HEAP8[i13] | 0;
24667 0 : if (!(i14 << 24 >> 24 == 0) ? (_memchr(6096, i14 << 24 >> 24, 23) | 0) != 0 : 0) {
24668 0 : HEAP8[i8] = i14;
24669 0 : HEAP8[i7] = 0;
24670 0 : } else {
24671 0 : HEAP32[i4 >> 2] = i13;
24672 0 : _luaL_argerror(i1, 1, _lua_pushfstring(i1, 6120, i4) | 0) | 0;
24673 0 : i12 = i13;
24674 0 : }
24675 0 : _luaL_addlstring(i3, i5, _strftime(i5 | 0, 200, i6 | 0, i10 | 0) | 0);
24676 0 : }
24677 0 : _luaL_pushresult(i3);
24678 0 : STACKTOP = i2;
24679 0 : return 1;
24680 1 : }
24681 1 : function _luaV_finishOp(i3) {
24682 0 : i3 = i3 | 0;
24683 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
24684 0 : i1 = STACKTOP;
24685 0 : i8 = HEAP32[i3 + 16 >> 2] | 0;
24686 0 : i7 = i8 + 24 | 0;
24687 0 : i4 = HEAP32[i7 >> 2] | 0;
24688 0 : i5 = i8 + 28 | 0;
24689 0 : i2 = HEAP32[(HEAP32[i5 >> 2] | 0) + -4 >> 2] | 0;
24690 0 : i6 = i2 & 63;
24691 0 : switch (i6 | 0) {
24692 0 : case 34:
24693 0 : {
24694 0 : HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
24695 0 : STACKTOP = i1;
24696 0 : return;
24697 0 : }
24698 0 : case 24:
24699 0 : case 25:
24700 0 : case 26:
24701 0 : {
24702 0 : i7 = i3 + 8 | 0;
24703 0 : i8 = HEAP32[i7 >> 2] | 0;
24704 0 : i9 = HEAP32[i8 + -8 >> 2] | 0;
24705 0 : if ((i9 | 0) != 0) {
24706 0 : if ((i9 | 0) == 1) {
24707 0 : i9 = (HEAP32[i8 + -16 >> 2] | 0) == 0;
24708 0 : } else {
24709 0 : i9 = 0;
24710 0 : }
24711 0 : } else {
24712 0 : i9 = 1;
24713 0 : }
24714 0 : i9 = i9 & 1;
24715 0 : i10 = i9 ^ 1;
24716 0 : HEAP32[i7 >> 2] = i8 + -16;
24717 0 : if ((i6 | 0) == 26) {
24718 0 : i8 = (HEAP32[(_luaT_gettmbyobj(i3, i4 + (i2 >>> 23 << 4) | 0, 14) | 0) + 8 >> 2] | 0) == 0;
24719 0 : i10 = i8 ? i9 : i10;
24720 0 : }
24721 0 : if ((i10 | 0) == (i2 >>> 6 & 255 | 0)) {
24722 0 : STACKTOP = i1;
24723 0 : return;
24724 0 : }
24725 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 4;
24726 0 : STACKTOP = i1;
24727 0 : return;
24728 0 : }
24729 0 : case 22:
24730 0 : {
24731 0 : i5 = i3 + 8 | 0;
24732 0 : i10 = HEAP32[i5 >> 2] | 0;
24733 0 : i6 = i10 + -32 | 0;
24734 0 : i4 = i6 - (i4 + (i2 >>> 23 << 4)) | 0;
24735 0 : i12 = i10 + -16 | 0;
24736 0 : i11 = HEAP32[i12 + 4 >> 2] | 0;
24737 0 : i9 = i10 + -48 | 0;
24738 0 : HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
24739 0 : HEAP32[i9 + 4 >> 2] = i11;
24740 0 : HEAP32[i10 + -40 >> 2] = HEAP32[i10 + -8 >> 2];
24741 0 : if ((i4 | 0) > 16) {
24742 0 : HEAP32[i5 >> 2] = i6;
24743 0 : _luaV_concat(i3, i4 >> 4);
24744 0 : }
24745 0 : i10 = HEAP32[i5 >> 2] | 0;
24746 0 : i11 = HEAP32[i7 >> 2] | 0;
24747 0 : i12 = i2 >>> 6 & 255;
24748 0 : i6 = i10 + -16 | 0;
24749 0 : i7 = HEAP32[i6 + 4 >> 2] | 0;
24750 0 : i9 = i11 + (i12 << 4) | 0;
24751 0 : HEAP32[i9 >> 2] = HEAP32[i6 >> 2];
24752 0 : HEAP32[i9 + 4 >> 2] = i7;
24753 0 : HEAP32[i11 + (i12 << 4) + 8 >> 2] = HEAP32[i10 + -8 >> 2];
24754 0 : HEAP32[i5 >> 2] = HEAP32[i8 + 4 >> 2];
24755 0 : STACKTOP = i1;
24756 0 : return;
24757 0 : }
24758 0 : case 12:
24759 0 : case 7:
24760 0 : case 6:
24761 0 : case 21:
24762 0 : case 19:
24763 0 : case 18:
24764 0 : case 17:
24765 0 : case 16:
24766 0 : case 15:
24767 0 : case 14:
24768 0 : case 13:
24769 0 : {
24770 0 : i12 = i3 + 8 | 0;
24771 0 : i11 = HEAP32[i12 >> 2] | 0;
24772 0 : i8 = i11 + -16 | 0;
24773 0 : HEAP32[i12 >> 2] = i8;
24774 0 : i12 = i2 >>> 6 & 255;
24775 0 : i9 = HEAP32[i8 + 4 >> 2] | 0;
24776 0 : i10 = i4 + (i12 << 4) | 0;
24777 0 : HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
24778 0 : HEAP32[i10 + 4 >> 2] = i9;
24779 0 : HEAP32[i4 + (i12 << 4) + 8 >> 2] = HEAP32[i11 + -8 >> 2];
24780 0 : STACKTOP = i1;
24781 0 : return;
24782 0 : }
24783 0 : case 29:
24784 0 : {
24785 0 : if ((i2 & 8372224 | 0) == 0) {
24786 0 : STACKTOP = i1;
24787 0 : return;
24788 0 : }
24789 0 : HEAP32[i3 + 8 >> 2] = HEAP32[i8 + 4 >> 2];
24790 0 : STACKTOP = i1;
24791 0 : return;
24792 0 : }
24793 0 : default:
24794 0 : {
24795 0 : STACKTOP = i1;
24796 0 : return;
24797 0 : }
24798 0 : }
24799 1 : }
24800 1 : function _auxsort(i2, i4, i5) {
24801 0 : i2 = i2 | 0;
24802 0 : i4 = i4 | 0;
24803 0 : i5 = i5 | 0;
24804 0 : var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
24805 0 : i1 = STACKTOP;
24806 0 : STACKTOP = STACKTOP + 16 | 0;
24807 0 : i3 = i1;
24808 0 : if ((i4 | 0) >= (i5 | 0)) {
24809 0 : STACKTOP = i1;
24810 0 : return;
24811 0 : }
24812 0 : while (1) {
24813 0 : _lua_rawgeti(i2, 1, i4);
24814 0 : _lua_rawgeti(i2, 1, i5);
24815 0 : if ((_sort_comp(i2, -1, -2) | 0) == 0) {
24816 0 : _lua_settop(i2, -3);
24817 0 : } else {
24818 0 : _lua_rawseti(i2, 1, i4);
24819 0 : _lua_rawseti(i2, 1, i5);
24820 0 : }
24821 0 : i6 = i5 - i4 | 0;
24822 0 : if ((i6 | 0) == 1) {
24823 0 : i2 = 24;
24824 0 : break;
24825 0 : }
24826 0 : i7 = (i5 + i4 | 0) / 2 | 0;
24827 0 : _lua_rawgeti(i2, 1, i7);
24828 0 : _lua_rawgeti(i2, 1, i4);
24829 0 : do {
24830 0 : if ((_sort_comp(i2, -2, -1) | 0) == 0) {
24831 0 : _lua_settop(i2, -2);
24832 0 : _lua_rawgeti(i2, 1, i5);
24833 0 : if ((_sort_comp(i2, -1, -2) | 0) == 0) {
24834 0 : _lua_settop(i2, -3);
24835 0 : break;
24836 0 : } else {
24837 0 : _lua_rawseti(i2, 1, i7);
24838 0 : _lua_rawseti(i2, 1, i5);
24839 0 : break;
24840 0 : }
24841 0 : } else {
24842 0 : _lua_rawseti(i2, 1, i7);
24843 0 : _lua_rawseti(i2, 1, i4);
24844 0 : }
24845 0 : } while (0);
24846 0 : if ((i6 | 0) == 2) {
24847 0 : i2 = 24;
24848 0 : break;
24849 0 : }
24850 0 : _lua_rawgeti(i2, 1, i7);
24851 0 : _lua_pushvalue(i2, -1);
24852 0 : i6 = i5 + -1 | 0;
24853 0 : _lua_rawgeti(i2, 1, i6);
24854 0 : _lua_rawseti(i2, 1, i7);
24855 0 : _lua_rawseti(i2, 1, i6);
24856 0 : i7 = i4;
24857 0 : i9 = i6;
24858 0 : while (1) {
24859 0 : i8 = i7 + 1 | 0;
24860 0 : _lua_rawgeti(i2, 1, i8);
24861 0 : if ((_sort_comp(i2, -1, -2) | 0) != 0) {
24862 0 : i7 = i8;
24863 0 : while (1) {
24864 0 : if ((i7 | 0) >= (i5 | 0)) {
24865 0 : _luaL_error(i2, 8216, i3) | 0;
24866 0 : }
24867 0 : _lua_settop(i2, -2);
24868 0 : i8 = i7 + 1 | 0;
24869 0 : _lua_rawgeti(i2, 1, i8);
24870 0 : if ((_sort_comp(i2, -1, -2) | 0) == 0) {
24871 0 : break;
24872 0 : } else {
24873 0 : i7 = i8;
24874 0 : }
24875 0 : }
24876 0 : }
24877 0 : i10 = i9 + -1 | 0;
24878 0 : _lua_rawgeti(i2, 1, i10);
24879 0 : if ((_sort_comp(i2, -3, -1) | 0) != 0) {
24880 0 : i9 = i10;
24881 0 : while (1) {
24882 0 : if ((i9 | 0) <= (i4 | 0)) {
24883 0 : _luaL_error(i2, 8216, i3) | 0;
24884 0 : }
24885 0 : _lua_settop(i2, -2);
24886 0 : i10 = i9 + -1 | 0;
24887 0 : _lua_rawgeti(i2, 1, i10);
24888 0 : if ((_sort_comp(i2, -3, -1) | 0) == 0) {
24889 0 : break;
24890 0 : } else {
24891 0 : i9 = i10;
24892 0 : }
24893 0 : }
24894 0 : }
24895 0 : if ((i9 | 0) <= (i8 | 0)) {
24896 0 : break;
24897 0 : }
24898 0 : _lua_rawseti(i2, 1, i8);
24899 0 : _lua_rawseti(i2, 1, i10);
24900 0 : i7 = i8;
24901 0 : i9 = i10;
24902 0 : }
24903 0 : _lua_settop(i2, -4);
24904 0 : _lua_rawgeti(i2, 1, i6);
24905 0 : _lua_rawgeti(i2, 1, i8);
24906 0 : _lua_rawseti(i2, 1, i6);
24907 0 : _lua_rawseti(i2, 1, i8);
24908 0 : i8 = (i8 - i4 | 0) < (i5 - i8 | 0);
24909 0 : i9 = i7 + 2 | 0;
24910 0 : i10 = i8 ? i9 : i4;
24911 0 : i6 = i8 ? i5 : i7;
24912 0 : _auxsort(i2, i8 ? i4 : i9, i8 ? i7 : i5);
24913 0 : if ((i10 | 0) < (i6 | 0)) {
24914 0 : i4 = i10;
24915 0 : i5 = i6;
24916 0 : } else {
24917 0 : i2 = 24;
24918 0 : break;
24919 0 : }
24920 0 : }
24921 0 : if ((i2 | 0) == 24) {
24922 0 : STACKTOP = i1;
24923 0 : return;
24924 0 : }
24925 1 : }
24926 6 : function _skip_sep(i3) {
24927 6 : i3 = i3 | 0;
24928 6 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
24929 6 : i1 = STACKTOP;
24930 6 : i2 = HEAP32[i3 >> 2] | 0;
24931 6 : i4 = i3 + 60 | 0;
24932 6 : i10 = HEAP32[i4 >> 2] | 0;
24933 6 : i8 = i10 + 4 | 0;
24934 6 : i11 = HEAP32[i8 >> 2] | 0;
24935 6 : i7 = i10 + 8 | 0;
24936 6 : i5 = HEAP32[i7 >> 2] | 0;
24937 6 : do {
24938 6 : if ((i11 + 1 | 0) >>> 0 > i5 >>> 0) {
24939 6 : if (i5 >>> 0 > 2147483645) {
24940 6 : _lexerror(i3, 12368, 0);
24941 6 : }
24942 6 : i12 = i5 << 1;
24943 6 : i11 = HEAP32[i3 + 52 >> 2] | 0;
24944 6 : if ((i12 | 0) == -2) {
24945 6 : _luaM_toobig(i11);
24946 6 : } else {
24947 6 : i9 = _luaM_realloc_(i11, HEAP32[i10 >> 2] | 0, i5, i12) | 0;
24948 6 : HEAP32[i10 >> 2] = i9;
24949 6 : HEAP32[i7 >> 2] = i12;
24950 6 : i6 = HEAP32[i8 >> 2] | 0;
24951 6 : break;
24952 6 : }
24953 6 : } else {
24954 6 : i6 = i11;
24955 6 : i9 = HEAP32[i10 >> 2] | 0;
24956 6 : }
24957 6 : } while (0);
24958 6 : HEAP32[i8 >> 2] = i6 + 1;
24959 6 : HEAP8[i9 + i6 | 0] = i2;
24960 6 : i5 = i3 + 56 | 0;
24961 6 : i6 = HEAP32[i5 >> 2] | 0;
24962 6 : i13 = HEAP32[i6 >> 2] | 0;
24963 6 : HEAP32[i6 >> 2] = i13 + -1;
24964 6 : if ((i13 | 0) == 0) {
24965 6 : i6 = _luaZ_fill(i6) | 0;
24966 6 : } else {
24967 6 : i13 = i6 + 4 | 0;
24968 6 : i6 = HEAP32[i13 >> 2] | 0;
24969 6 : HEAP32[i13 >> 2] = i6 + 1;
24970 6 : i6 = HEAPU8[i6] | 0;
24971 6 : }
24972 6 : HEAP32[i3 >> 2] = i6;
24973 6 : if ((i6 | 0) != 61) {
24974 6 : i12 = i6;
24975 6 : i13 = 0;
24976 6 : i12 = (i12 | 0) != (i2 | 0);
24977 6 : i12 = i12 << 31 >> 31;
24978 6 : i13 = i12 ^ i13;
24979 6 : STACKTOP = i1;
24980 6 : return i13 | 0;
24981 6 : }
24982 6 : i6 = i3 + 52 | 0;
24983 6 : i7 = 0;
24984 6 : while (1) {
24985 6 : i9 = HEAP32[i4 >> 2] | 0;
24986 6 : i8 = i9 + 4 | 0;
24987 6 : i10 = HEAP32[i8 >> 2] | 0;
24988 6 : i11 = i9 + 8 | 0;
24989 6 : i12 = HEAP32[i11 >> 2] | 0;
24990 6 : if ((i10 + 1 | 0) >>> 0 > i12 >>> 0) {
24991 6 : if (i12 >>> 0 > 2147483645) {
24992 6 : i4 = 16;
24993 6 : break;
24994 6 : }
24995 6 : i13 = i12 << 1;
24996 6 : i10 = HEAP32[i6 >> 2] | 0;
24997 6 : if ((i13 | 0) == -2) {
24998 6 : i4 = 18;
24999 6 : break;
25000 6 : }
25001 6 : i12 = _luaM_realloc_(i10, HEAP32[i9 >> 2] | 0, i12, i13) | 0;
25002 6 : HEAP32[i9 >> 2] = i12;
25003 6 : HEAP32[i11 >> 2] = i13;
25004 6 : i10 = HEAP32[i8 >> 2] | 0;
25005 6 : i9 = i12;
25006 6 : } else {
25007 6 : i9 = HEAP32[i9 >> 2] | 0;
25008 6 : }
25009 6 : HEAP32[i8 >> 2] = i10 + 1;
25010 6 : HEAP8[i9 + i10 | 0] = 61;
25011 6 : i8 = HEAP32[i5 >> 2] | 0;
25012 6 : i13 = HEAP32[i8 >> 2] | 0;
25013 6 : HEAP32[i8 >> 2] = i13 + -1;
25014 6 : if ((i13 | 0) == 0) {
25015 6 : i8 = _luaZ_fill(i8) | 0;
25016 6 : } else {
25017 6 : i13 = i8 + 4 | 0;
25018 6 : i8 = HEAP32[i13 >> 2] | 0;
25019 6 : HEAP32[i13 >> 2] = i8 + 1;
25020 6 : i8 = HEAPU8[i8] | 0;
25021 6 : }
25022 6 : HEAP32[i3 >> 2] = i8;
25023 6 : i7 = i7 + 1 | 0;
25024 6 : if ((i8 | 0) != 61) {
25025 6 : i4 = 24;
25026 6 : break;
25027 6 : }
25028 6 : }
25029 6 : if ((i4 | 0) == 16) {
25030 6 : _lexerror(i3, 12368, 0);
25031 6 : } else if ((i4 | 0) == 18) {
25032 6 : _luaM_toobig(i10);
25033 6 : } else if ((i4 | 0) == 24) {
25034 6 : i13 = (i8 | 0) != (i2 | 0);
25035 6 : i13 = i13 << 31 >> 31;
25036 6 : i13 = i13 ^ i7;
25037 6 : STACKTOP = i1;
25038 6 : return i13 | 0;
25039 6 : }
25040 6 : return 0;
25041 6 : }
25042 1 : function _luaV_arith(i8, i2, i3, i5, i4) {
25043 0 : i8 = i8 | 0;
25044 0 : i2 = i2 | 0;
25045 0 : i3 = i3 | 0;
25046 0 : i5 = i5 | 0;
25047 0 : i4 = i4 | 0;
25048 0 : var i1 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, d14 = 0.0;
25049 0 : i1 = STACKTOP;
25050 0 : STACKTOP = STACKTOP + 32 | 0;
25051 0 : i9 = i1 + 24 | 0;
25052 0 : i13 = i1 + 16 | 0;
25053 0 : i12 = i1;
25054 0 : i6 = i3 + 8 | 0;
25055 0 : i11 = HEAP32[i6 >> 2] | 0;
25056 0 : if ((i11 | 0) != 3) {
25057 0 : if ((i11 & 15 | 0) == 4 ? (i11 = HEAP32[i3 >> 2] | 0, (_luaO_str2d(i11 + 16 | 0, HEAP32[i11 + 12 >> 2] | 0, i13) | 0) != 0) : 0) {
25058 0 : HEAPF64[i12 >> 3] = +HEAPF64[i13 >> 3];
25059 0 : HEAP32[i12 + 8 >> 2] = 3;
25060 0 : i10 = 5;
25061 0 : }
25062 0 : } else {
25063 0 : i12 = i3;
25064 0 : i10 = 5;
25065 0 : }
25066 0 : do {
25067 0 : if ((i10 | 0) == 5) {
25068 0 : i10 = HEAP32[i5 + 8 >> 2] | 0;
25069 0 : if ((i10 | 0) == 3) {
25070 0 : if ((i5 | 0) == 0) {
25071 0 : break;
25072 0 : }
25073 0 : d14 = +HEAPF64[i5 >> 3];
25074 0 : } else {
25075 0 : if ((i10 & 15 | 0) != 4) {
25076 0 : break;
25077 0 : }
25078 0 : i13 = HEAP32[i5 >> 2] | 0;
25079 0 : if ((_luaO_str2d(i13 + 16 | 0, HEAP32[i13 + 12 >> 2] | 0, i9) | 0) == 0) {
25080 0 : break;
25081 0 : }
25082 0 : d14 = +HEAPF64[i9 >> 3];
25083 0 : }
25084 0 : HEAPF64[i2 >> 3] = +_luaO_arith(i4 + -6 | 0, +HEAPF64[i12 >> 3], d14);
25085 0 : HEAP32[i2 + 8 >> 2] = 3;
25086 0 : STACKTOP = i1;
25087 0 : return;
25088 0 : }
25089 0 : } while (0);
25090 0 : i9 = _luaT_gettmbyobj(i8, i3, i4) | 0;
25091 0 : if ((HEAP32[i9 + 8 >> 2] | 0) == 0) {
25092 0 : i4 = _luaT_gettmbyobj(i8, i5, i4) | 0;
25093 0 : if ((HEAP32[i4 + 8 >> 2] | 0) == 0) {
25094 0 : _luaG_aritherror(i8, i3, i5);
25095 0 : } else {
25096 0 : i7 = i4;
25097 0 : }
25098 0 : } else {
25099 0 : i7 = i9;
25100 0 : }
25101 0 : i12 = i8 + 28 | 0;
25102 0 : i13 = i2 - (HEAP32[i12 >> 2] | 0) | 0;
25103 0 : i9 = i8 + 8 | 0;
25104 0 : i11 = HEAP32[i9 >> 2] | 0;
25105 0 : HEAP32[i9 >> 2] = i11 + 16;
25106 0 : i2 = i7;
25107 0 : i10 = HEAP32[i2 + 4 >> 2] | 0;
25108 0 : i4 = i11;
25109 0 : HEAP32[i4 >> 2] = HEAP32[i2 >> 2];
25110 0 : HEAP32[i4 + 4 >> 2] = i10;
25111 0 : HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
25112 0 : i11 = HEAP32[i9 >> 2] | 0;
25113 0 : HEAP32[i9 >> 2] = i11 + 16;
25114 0 : i4 = i3;
25115 0 : i10 = HEAP32[i4 + 4 >> 2] | 0;
25116 0 : i7 = i11;
25117 0 : HEAP32[i7 >> 2] = HEAP32[i4 >> 2];
25118 0 : HEAP32[i7 + 4 >> 2] = i10;
25119 0 : HEAP32[i11 + 8 >> 2] = HEAP32[i6 >> 2];
25120 0 : i11 = HEAP32[i9 >> 2] | 0;
25121 0 : HEAP32[i9 >> 2] = i11 + 16;
25122 0 : i6 = i5;
25123 0 : i7 = HEAP32[i6 + 4 >> 2] | 0;
25124 0 : i10 = i11;
25125 0 : HEAP32[i10 >> 2] = HEAP32[i6 >> 2];
25126 0 : HEAP32[i10 + 4 >> 2] = i7;
25127 0 : HEAP32[i11 + 8 >> 2] = HEAP32[i5 + 8 >> 2];
25128 0 : _luaD_call(i8, (HEAP32[i9 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i8 + 16 >> 2] | 0) + 18 | 0] & 1);
25129 0 : i12 = HEAP32[i12 >> 2] | 0;
25130 0 : i11 = HEAP32[i9 >> 2] | 0;
25131 0 : i8 = i11 + -16 | 0;
25132 0 : HEAP32[i9 >> 2] = i8;
25133 0 : i9 = HEAP32[i8 + 4 >> 2] | 0;
25134 0 : i10 = i12 + i13 | 0;
25135 0 : HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
25136 0 : HEAP32[i10 + 4 >> 2] = i9;
25137 0 : HEAP32[i12 + (i13 + 8) >> 2] = HEAP32[i11 + -8 >> 2];
25138 0 : STACKTOP = i1;
25139 0 : return;
25140 1 : }
25141 24 : function _new_localvar(i1, i8) {
25142 24 : i1 = i1 | 0;
25143 24 : i8 = i8 | 0;
25144 24 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
25145 24 : i3 = STACKTOP;
25146 24 : STACKTOP = STACKTOP + 16 | 0;
25147 24 : i4 = i3;
25148 24 : i5 = HEAP32[i1 + 48 >> 2] | 0;
25149 24 : i2 = HEAP32[i1 + 64 >> 2] | 0;
25150 24 : i7 = HEAP32[i5 >> 2] | 0;
25151 24 : i10 = i7 + 60 | 0;
25152 24 : i11 = HEAP32[i10 >> 2] | 0;
25153 24 : i6 = i5 + 44 | 0;
25154 24 : if ((HEAP16[i6 >> 1] | 0) < (i11 | 0)) {
25155 24 : i9 = i7 + 24 | 0;
25156 24 : i10 = i11;
25157 24 : } else {
25158 24 : i9 = i7 + 24 | 0;
25159 24 : HEAP32[i9 >> 2] = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i9 >> 2] | 0, i10, 12, 32767, 6496) | 0;
25160 24 : i10 = HEAP32[i10 >> 2] | 0;
25161 24 : }
25162 24 : if ((i11 | 0) < (i10 | 0)) {
25163 24 : i12 = i11;
25164 24 : while (1) {
25165 24 : i11 = i12 + 1 | 0;
25166 24 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i12 * 12 | 0) >> 2] = 0;
25167 24 : if ((i11 | 0) == (i10 | 0)) {
25168 24 : break;
25169 24 : } else {
25170 24 : i12 = i11;
25171 24 : }
25172 24 : }
25173 24 : }
25174 24 : i10 = HEAP16[i6 >> 1] | 0;
25175 24 : HEAP32[(HEAP32[i9 >> 2] | 0) + ((i10 << 16 >> 16) * 12 | 0) >> 2] = i8;
25176 24 : if (!((HEAP8[i8 + 5 | 0] & 3) == 0) ? !((HEAP8[i7 + 5 | 0] & 4) == 0) : 0) {
25177 24 : _luaC_barrier_(HEAP32[i1 + 52 >> 2] | 0, i7, i8);
25178 24 : i7 = HEAP16[i6 >> 1] | 0;
25179 24 : } else {
25180 24 : i7 = i10;
25181 24 : }
25182 24 : HEAP16[i6 >> 1] = i7 + 1 << 16 >> 16;
25183 24 : i6 = i2 + 4 | 0;
25184 24 : i8 = HEAP32[i6 >> 2] | 0;
25185 24 : if ((i8 + 1 - (HEAP32[i5 + 40 >> 2] | 0) | 0) > 200) {
25186 24 : i10 = i5 + 12 | 0;
25187 24 : i9 = HEAP32[(HEAP32[i10 >> 2] | 0) + 52 >> 2] | 0;
25188 24 : i5 = HEAP32[(HEAP32[i5 >> 2] | 0) + 64 >> 2] | 0;
25189 24 : if ((i5 | 0) == 0) {
25190 24 : i11 = 6552;
25191 24 : HEAP32[i4 >> 2] = 6496;
25192 24 : i12 = i4 + 4 | 0;
25193 24 : HEAP32[i12 >> 2] = 200;
25194 24 : i12 = i4 + 8 | 0;
25195 24 : HEAP32[i12 >> 2] = i11;
25196 24 : i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
25197 24 : i11 = HEAP32[i10 >> 2] | 0;
25198 24 : _luaX_syntaxerror(i11, i12);
25199 24 : }
25200 24 : HEAP32[i4 >> 2] = i5;
25201 24 : i11 = _luaO_pushfstring(i9, 6568, i4) | 0;
25202 24 : HEAP32[i4 >> 2] = 6496;
25203 24 : i12 = i4 + 4 | 0;
25204 24 : HEAP32[i12 >> 2] = 200;
25205 24 : i12 = i4 + 8 | 0;
25206 24 : HEAP32[i12 >> 2] = i11;
25207 24 : i12 = _luaO_pushfstring(i9, 6592, i4) | 0;
25208 24 : i11 = HEAP32[i10 >> 2] | 0;
25209 24 : _luaX_syntaxerror(i11, i12);
25210 24 : }
25211 24 : i4 = i2 + 8 | 0;
25212 24 : if ((i8 + 2 | 0) > (HEAP32[i4 >> 2] | 0)) {
25213 24 : i11 = _luaM_growaux_(HEAP32[i1 + 52 >> 2] | 0, HEAP32[i2 >> 2] | 0, i4, 2, 2147483645, 6496) | 0;
25214 24 : HEAP32[i2 >> 2] = i11;
25215 24 : i12 = HEAP32[i6 >> 2] | 0;
25216 24 : i10 = i12 + 1 | 0;
25217 24 : HEAP32[i6 >> 2] = i10;
25218 24 : i12 = i11 + (i12 << 1) | 0;
25219 24 : HEAP16[i12 >> 1] = i7;
25220 24 : STACKTOP = i3;
25221 24 : return;
25222 24 : } else {
25223 24 : i12 = i8;
25224 24 : i11 = HEAP32[i2 >> 2] | 0;
25225 24 : i10 = i12 + 1 | 0;
25226 24 : HEAP32[i6 >> 2] = i10;
25227 24 : i12 = i11 + (i12 << 1) | 0;
25228 24 : HEAP16[i12 >> 1] = i7;
25229 24 : STACKTOP = i3;
25230 24 : return;
25231 24 : }
25232 24 : }
25233 1 : function _luaC_fullgc(i1, i5) {
25234 0 : i1 = i1 | 0;
25235 0 : i5 = i5 | 0;
25236 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
25237 0 : i2 = STACKTOP;
25238 0 : i4 = i1 + 12 | 0;
25239 0 : i3 = HEAP32[i4 >> 2] | 0;
25240 0 : i6 = i3 + 62 | 0;
25241 0 : i8 = HEAP8[i6] | 0;
25242 0 : i5 = (i5 | 0) != 0;
25243 0 : if (!i5) {
25244 0 : HEAP8[i6] = 0;
25245 0 : i9 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
25246 0 : i10 = HEAP32[i9 >> 2] | 0;
25247 0 : if ((i10 | 0) != 0) {
25248 0 : do {
25249 0 : i11 = i10 + 5 | 0;
25250 0 : HEAP8[i11] = HEAP8[i11] & 191;
25251 0 : _GCTM(i1, 1);
25252 0 : i10 = HEAP32[i9 >> 2] | 0;
25253 0 : } while ((i10 | 0) != 0);
25254 0 : if ((HEAP8[i6] | 0) == 2) {
25255 0 : i9 = 7;
25256 0 : } else {
25257 0 : i9 = 6;
25258 0 : }
25259 0 : } else {
25260 0 : i9 = 6;
25261 0 : }
25262 0 : } else {
25263 0 : HEAP8[i6] = 1;
25264 0 : i9 = 6;
25265 0 : }
25266 0 : if ((i9 | 0) == 6 ? (HEAPU8[i3 + 61 | 0] | 0) < 2 : 0) {
25267 0 : i9 = 7;
25268 0 : }
25269 0 : if ((i9 | 0) == 7) {
25270 0 : i9 = HEAP32[i4 >> 2] | 0;
25271 0 : HEAP8[i9 + 61 | 0] = 2;
25272 0 : HEAP32[i9 + 64 >> 2] = 0;
25273 0 : i10 = i9 + 72 | 0;
25274 0 : do {
25275 0 : i11 = _sweeplist(i1, i10, 1) | 0;
25276 0 : } while ((i11 | 0) == (i10 | 0));
25277 0 : HEAP32[i9 + 80 >> 2] = i11;
25278 0 : i11 = i9 + 68 | 0;
25279 0 : do {
25280 0 : i10 = _sweeplist(i1, i11, 1) | 0;
25281 0 : } while ((i10 | 0) == (i11 | 0));
25282 0 : HEAP32[i9 + 76 >> 2] = i10;
25283 0 : }
25284 0 : i11 = HEAP32[i4 >> 2] | 0;
25285 0 : i9 = i11 + 61 | 0;
25286 0 : if ((HEAP8[i9] | 0) == 5) {
25287 0 : i9 = 5;
25288 0 : } else {
25289 0 : do {
25290 0 : _singlestep(i1) | 0;
25291 0 : } while ((HEAP8[i9] | 0) != 5);
25292 0 : i9 = HEAP32[i4 >> 2] | 0;
25293 0 : i11 = i9;
25294 0 : i9 = HEAP8[i9 + 61 | 0] | 0;
25295 0 : }
25296 0 : i10 = i11 + 61 | 0;
25297 0 : if ((1 << (i9 & 255) & -33 | 0) == 0) {
25298 0 : do {
25299 0 : _singlestep(i1) | 0;
25300 0 : } while ((1 << HEAPU8[i10] & -33 | 0) == 0);
25301 0 : i9 = HEAP32[i4 >> 2] | 0;
25302 0 : i11 = i9;
25303 0 : i9 = HEAP8[i9 + 61 | 0] | 0;
25304 0 : }
25305 0 : i10 = i11 + 61 | 0;
25306 0 : if (!(i9 << 24 >> 24 == 5)) {
25307 0 : do {
25308 0 : _singlestep(i1) | 0;
25309 0 : } while ((HEAP8[i10] | 0) != 5);
25310 0 : }
25311 0 : if (i8 << 24 >> 24 == 2 ? (i7 = (HEAP32[i4 >> 2] | 0) + 61 | 0, (HEAP8[i7] | 0) != 0) : 0) {
25312 0 : do {
25313 0 : _singlestep(i1) | 0;
25314 0 : } while ((HEAP8[i7] | 0) != 0);
25315 0 : }
25316 0 : HEAP8[i6] = i8;
25317 0 : i6 = HEAP32[i3 + 8 >> 2] | 0;
25318 0 : i7 = HEAP32[i3 + 12 >> 2] | 0;
25319 0 : i8 = (i7 + i6 | 0) / 100 | 0;
25320 0 : i9 = HEAP32[i3 + 156 >> 2] | 0;
25321 0 : if ((i9 | 0) < (2147483644 / (i8 | 0) | 0 | 0)) {
25322 0 : i8 = Math_imul(i9, i8) | 0;
25323 0 : } else {
25324 0 : i8 = 2147483644;
25325 0 : }
25326 0 : _luaE_setdebt(i3, i6 - i8 + i7 | 0);
25327 0 : if (i5) {
25328 0 : STACKTOP = i2;
25329 0 : return;
25330 0 : }
25331 0 : i3 = (HEAP32[i4 >> 2] | 0) + 104 | 0;
25332 0 : i4 = HEAP32[i3 >> 2] | 0;
25333 0 : if ((i4 | 0) == 0) {
25334 0 : STACKTOP = i2;
25335 0 : return;
25336 0 : }
25337 0 : do {
25338 0 : i11 = i4 + 5 | 0;
25339 0 : HEAP8[i11] = HEAP8[i11] & 191;
25340 0 : _GCTM(i1, 1);
25341 0 : i4 = HEAP32[i3 >> 2] | 0;
25342 0 : } while ((i4 | 0) != 0);
25343 0 : STACKTOP = i2;
25344 0 : return;
25345 1 : }
25346 1 : function _scanexp(i3, i6) {
25347 0 : i3 = i3 | 0;
25348 0 : i6 = i6 | 0;
25349 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
25350 0 : i1 = STACKTOP;
25351 0 : i2 = i3 + 4 | 0;
25352 0 : i5 = HEAP32[i2 >> 2] | 0;
25353 0 : i4 = i3 + 100 | 0;
25354 0 : if (i5 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
25355 0 : HEAP32[i2 >> 2] = i5 + 1;
25356 0 : i8 = HEAPU8[i5] | 0;
25357 0 : } else {
25358 0 : i8 = ___shgetc(i3) | 0;
25359 0 : }
25360 0 : if ((i8 | 0) == 43 | (i8 | 0) == 45) {
25361 0 : i5 = (i8 | 0) == 45 | 0;
25362 0 : i7 = HEAP32[i2 >> 2] | 0;
25363 0 : if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
25364 0 : HEAP32[i2 >> 2] = i7 + 1;
25365 0 : i8 = HEAPU8[i7] | 0;
25366 0 : } else {
25367 0 : i8 = ___shgetc(i3) | 0;
25368 0 : }
25369 0 : if (!((i8 + -48 | 0) >>> 0 < 10 | (i6 | 0) == 0) ? (HEAP32[i4 >> 2] | 0) != 0 : 0) {
25370 0 : HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
25371 0 : }
25372 0 : } else {
25373 0 : i5 = 0;
25374 0 : }
25375 0 : if ((i8 + -48 | 0) >>> 0 > 9) {
25376 0 : if ((HEAP32[i4 >> 2] | 0) == 0) {
25377 0 : i7 = -2147483648;
25378 0 : i8 = 0;
25379 0 : tempRet0 = i7;
25380 0 : STACKTOP = i1;
25381 0 : return i8 | 0;
25382 0 : }
25383 0 : HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
25384 0 : i7 = -2147483648;
25385 0 : i8 = 0;
25386 0 : tempRet0 = i7;
25387 0 : STACKTOP = i1;
25388 0 : return i8 | 0;
25389 0 : } else {
25390 0 : i6 = 0;
25391 0 : }
25392 0 : while (1) {
25393 0 : i6 = i8 + -48 + i6 | 0;
25394 0 : i7 = HEAP32[i2 >> 2] | 0;
25395 0 : if (i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
25396 0 : HEAP32[i2 >> 2] = i7 + 1;
25397 0 : i8 = HEAPU8[i7] | 0;
25398 0 : } else {
25399 0 : i8 = ___shgetc(i3) | 0;
25400 0 : }
25401 0 : if (!((i8 + -48 | 0) >>> 0 < 10 & (i6 | 0) < 214748364)) {
25402 0 : break;
25403 0 : }
25404 0 : i6 = i6 * 10 | 0;
25405 0 : }
25406 0 : i7 = ((i6 | 0) < 0) << 31 >> 31;
25407 0 : if ((i8 + -48 | 0) >>> 0 < 10) {
25408 0 : do {
25409 0 : i7 = ___muldi3(i6 | 0, i7 | 0, 10, 0) | 0;
25410 0 : i6 = tempRet0;
25411 0 : i8 = _i64Add(i8 | 0, ((i8 | 0) < 0) << 31 >> 31 | 0, -48, -1) | 0;
25412 0 : i6 = _i64Add(i8 | 0, tempRet0 | 0, i7 | 0, i6 | 0) | 0;
25413 0 : i7 = tempRet0;
25414 0 : i8 = HEAP32[i2 >> 2] | 0;
25415 0 : if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
25416 0 : HEAP32[i2 >> 2] = i8 + 1;
25417 0 : i8 = HEAPU8[i8] | 0;
25418 0 : } else {
25419 0 : i8 = ___shgetc(i3) | 0;
25420 0 : }
25421 0 : } while ((i8 + -48 | 0) >>> 0 < 10 & ((i7 | 0) < 21474836 | (i7 | 0) == 21474836 & i6 >>> 0 < 2061584302));
25422 0 : }
25423 0 : if ((i8 + -48 | 0) >>> 0 < 10) {
25424 0 : do {
25425 0 : i8 = HEAP32[i2 >> 2] | 0;
25426 0 : if (i8 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0) {
25427 0 : HEAP32[i2 >> 2] = i8 + 1;
25428 0 : i8 = HEAPU8[i8] | 0;
25429 0 : } else {
25430 0 : i8 = ___shgetc(i3) | 0;
25431 0 : }
25432 0 : } while ((i8 + -48 | 0) >>> 0 < 10);
25433 0 : }
25434 0 : if ((HEAP32[i4 >> 2] | 0) != 0) {
25435 0 : HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + -1;
25436 0 : }
25437 0 : i3 = (i5 | 0) != 0;
25438 0 : i2 = _i64Subtract(0, 0, i6 | 0, i7 | 0) | 0;
25439 0 : i4 = i3 ? tempRet0 : i7;
25440 0 : i8 = i3 ? i2 : i6;
25441 0 : tempRet0 = i4;
25442 0 : STACKTOP = i1;
25443 0 : return i8 | 0;
25444 1 : }
25445 8158 : function _sweeplist(i3, i8, i9) {
25446 8158 : i3 = i3 | 0;
25447 8158 : i8 = i8 | 0;
25448 8158 : i9 = i9 | 0;
25449 8158 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0, i12 = 0;
25450 8158 : i1 = STACKTOP;
25451 8158 : i5 = i3 + 12 | 0;
25452 8158 : i7 = HEAP32[i5 >> 2] | 0;
25453 8158 : i6 = HEAPU8[i7 + 60 | 0] | 0;
25454 8158 : i2 = i6 ^ 3;
25455 8158 : i7 = (HEAP8[i7 + 62 | 0] | 0) == 2;
25456 8158 : i4 = i7 ? 255 : 184;
25457 8158 : i6 = i7 ? 64 : i6 & 3;
25458 8158 : i7 = i7 ? 64 : 0;
25459 8158 : i10 = HEAP32[i8 >> 2] | 0;
25460 8158 : L1 : do {
25461 8158 : if ((i10 | 0) == 0) {
25462 8158 : i10 = 0;
25463 8158 : } else {
25464 8158 : i11 = i9;
25465 8158 : L2 : while (1) {
25466 8158 : i9 = i11 + -1 | 0;
25467 8158 : if ((i11 | 0) == 0) {
25468 8158 : break L1;
25469 8158 : }
25470 8158 : i11 = i10 + 5 | 0;
25471 8158 : i12 = HEAPU8[i11] | 0;
25472 8158 : L5 : do {
25473 8158 : if (((i12 ^ 3) & i2 | 0) == 0) {
25474 8158 : HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
25475 8158 : switch (HEAPU8[i10 + 4 | 0] | 0) {
25476 8158 : case 4:
25477 8158 : {
25478 8158 : i12 = (HEAP32[i5 >> 2] | 0) + 28 | 0;
25479 8158 : HEAP32[i12 >> 2] = (HEAP32[i12 >> 2] | 0) + -1;
25480 8158 : break;
25481 8158 : }
25482 8158 : case 38:
25483 8158 : {
25484 8158 : _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 4) + 16 | 0, 0) | 0;
25485 8158 : break L5;
25486 8158 : }
25487 8158 : case 6:
25488 8158 : {
25489 8158 : _luaM_realloc_(i3, i10, (HEAPU8[i10 + 6 | 0] << 2) + 16 | 0, 0) | 0;
25490 8158 : break L5;
25491 8158 : }
25492 8158 : case 20:
25493 8158 : {
25494 8158 : break;
25495 8158 : }
25496 8158 : case 5:
25497 8158 : {
25498 8158 : _luaH_free(i3, i10);
25499 8158 : break L5;
25500 8158 : }
25501 8158 : case 10:
25502 8158 : {
25503 8158 : _luaF_freeupval(i3, i10);
25504 8158 : break L5;
25505 8158 : }
25506 8158 : case 8:
25507 8158 : {
25508 8158 : _luaE_freethread(i3, i10);
25509 8158 : break L5;
25510 8158 : }
25511 8158 : case 9:
25512 8158 : {
25513 8158 : _luaF_freeproto(i3, i10);
25514 8158 : break L5;
25515 8158 : }
25516 8158 : case 7:
25517 8158 : {
25518 8158 : _luaM_realloc_(i3, i10, (HEAP32[i10 + 16 >> 2] | 0) + 24 | 0, 0) | 0;
25519 8158 : break L5;
25520 8158 : }
25521 8158 : default:
25522 8158 : {
25523 8158 : break L5;
25524 8158 : }
25525 8158 : }
25526 8158 : _luaM_realloc_(i3, i10, (HEAP32[i10 + 12 >> 2] | 0) + 17 | 0, 0) | 0;
25527 8158 : } else {
25528 8158 : if ((i12 & i7 | 0) != 0) {
25529 8158 : i2 = 0;
25530 8158 : break L2;
25531 8158 : }
25532 8158 : if (((HEAP8[i10 + 4 | 0] | 0) == 8 ? (HEAP32[i10 + 28 >> 2] | 0) != 0 : 0) ? (_sweeplist(i3, i10 + 56 | 0, -3) | 0, _luaE_freeCI(i10), (HEAP8[(HEAP32[i5 >> 2] | 0) + 62 | 0] | 0) != 1) : 0) {
25533 8158 : _luaD_shrinkstack(i10);
25534 8158 : }
25535 8158 : HEAP8[i11] = i12 & i4 | i6;
25536 8158 : i8 = i10;
25537 8158 : }
25538 8158 : } while (0);
25539 8158 : i10 = HEAP32[i8 >> 2] | 0;
25540 8158 : if ((i10 | 0) == 0) {
25541 8158 : i10 = 0;
25542 8158 : break L1;
25543 8158 : } else {
25544 8158 : i11 = i9;
25545 8158 : }
25546 8158 : }
25547 8158 : STACKTOP = i1;
25548 8158 : return i2 | 0;
25549 8158 : }
25550 8158 : } while (0);
25551 8158 : i12 = (i10 | 0) == 0 ? 0 : i8;
25552 8158 : STACKTOP = i1;
25553 8158 : return i12 | 0;
25554 8158 : }
25555 1 : function _resume(i1, i6) {
25556 0 : i1 = i1 | 0;
25557 0 : i6 = i6 | 0;
25558 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
25559 0 : i2 = STACKTOP;
25560 0 : i3 = i1 + 16 | 0;
25561 0 : i5 = HEAP32[i3 >> 2] | 0;
25562 0 : if ((HEAPU16[i1 + 38 >> 1] | 0) > 199) {
25563 0 : _resume_error(i1, 2240, i6);
25564 0 : }
25565 0 : i4 = i1 + 6 | 0;
25566 0 : i7 = HEAP8[i4] | 0;
25567 0 : if (i7 << 24 >> 24 == 0) {
25568 0 : if ((i5 | 0) != (i1 + 72 | 0)) {
25569 0 : _resume_error(i1, 2448, i6);
25570 0 : }
25571 0 : if ((_luaD_precall(i1, i6 + -16 | 0, -1) | 0) != 0) {
25572 0 : STACKTOP = i2;
25573 0 : return;
25574 0 : }
25575 0 : _luaV_execute(i1);
25576 0 : STACKTOP = i2;
25577 0 : return;
25578 0 : } else if (i7 << 24 >> 24 == 1) {
25579 0 : HEAP8[i4] = 0;
25580 0 : i4 = i1 + 28 | 0;
25581 0 : HEAP32[i5 >> 2] = (HEAP32[i4 >> 2] | 0) + (HEAP32[i5 + 20 >> 2] | 0);
25582 0 : i8 = i5 + 18 | 0;
25583 0 : i7 = HEAP8[i8] | 0;
25584 0 : if ((i7 & 1) == 0) {
25585 0 : i9 = HEAP32[i5 + 28 >> 2] | 0;
25586 0 : if ((i9 | 0) != 0) {
25587 0 : HEAP8[i5 + 37 | 0] = 1;
25588 0 : HEAP8[i8] = i7 & 255 | 8;
25589 0 : i6 = FUNCTION_TABLE_ii[i9 & 255](i1) | 0;
25590 0 : i6 = (HEAP32[i1 + 8 >> 2] | 0) + (0 - i6 << 4) | 0;
25591 0 : }
25592 0 : i5 = HEAP32[i3 >> 2] | 0;
25593 0 : i7 = HEAPU8[i1 + 40 | 0] | 0;
25594 0 : if ((i7 & 6 | 0) == 0) {
25595 0 : i7 = i5 + 8 | 0;
25596 0 : } else {
25597 0 : if ((i7 & 2 | 0) != 0) {
25598 0 : i6 = i6 - (HEAP32[i4 >> 2] | 0) | 0;
25599 0 : _luaD_hook(i1, 1, -1);
25600 0 : i6 = (HEAP32[i4 >> 2] | 0) + i6 | 0;
25601 0 : }
25602 0 : i7 = i5 + 8 | 0;
25603 0 : HEAP32[i1 + 20 >> 2] = HEAP32[(HEAP32[i7 >> 2] | 0) + 28 >> 2];
25604 0 : }
25605 0 : i4 = HEAP32[i5 >> 2] | 0;
25606 0 : i5 = HEAP16[i5 + 16 >> 1] | 0;
25607 0 : HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
25608 0 : i3 = i1 + 8 | 0;
25609 0 : L27 : do {
25610 0 : if (!(i5 << 16 >> 16 == 0)) {
25611 0 : i5 = i5 << 16 >> 16;
25612 0 : while (1) {
25613 0 : if (!(i6 >>> 0 < (HEAP32[i3 >> 2] | 0) >>> 0)) {
25614 0 : break;
25615 0 : }
25616 0 : i7 = i4 + 16 | 0;
25617 0 : i10 = i6;
25618 0 : i8 = HEAP32[i10 + 4 >> 2] | 0;
25619 0 : i9 = i4;
25620 0 : HEAP32[i9 >> 2] = HEAP32[i10 >> 2];
25621 0 : HEAP32[i9 + 4 >> 2] = i8;
25622 0 : HEAP32[i4 + 8 >> 2] = HEAP32[i6 + 8 >> 2];
25623 0 : i5 = i5 + -1 | 0;
25624 0 : if ((i5 | 0) == 0) {
25625 0 : i4 = i7;
25626 0 : break L27;
25627 0 : }
25628 0 : i6 = i6 + 16 | 0;
25629 0 : i4 = i7;
25630 0 : }
25631 0 : if ((i5 | 0) > 0) {
25632 0 : i7 = i5;
25633 0 : i6 = i4;
25634 0 : while (1) {
25635 0 : i7 = i7 + -1 | 0;
25636 0 : HEAP32[i6 + 8 >> 2] = 0;
25637 0 : if ((i7 | 0) <= 0) {
25638 0 : break;
25639 0 : } else {
25640 0 : i6 = i6 + 16 | 0;
25641 0 : }
25642 0 : }
25643 0 : i4 = i4 + (i5 << 4) | 0;
25644 0 : }
25645 0 : }
25646 0 : } while (0);
25647 0 : HEAP32[i3 >> 2] = i4;
25648 0 : } else {
25649 0 : _luaV_execute(i1);
25650 0 : }
25651 0 : _unroll(i1, 0);
25652 0 : STACKTOP = i2;
25653 0 : return;
25654 0 : } else {
25655 0 : _resume_error(i1, 2488, i6);
25656 0 : }
25657 1 : }
25658 1 : function _lua_setupvalue(i1, i5, i3) {
25659 0 : i1 = i1 | 0;
25660 0 : i5 = i5 | 0;
25661 0 : i3 = i3 | 0;
25662 0 : var i2 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
25663 0 : i2 = STACKTOP;
25664 0 : i6 = HEAP32[i1 + 16 >> 2] | 0;
25665 0 : do {
25666 0 : if ((i5 | 0) <= 0) {
25667 0 : if (!((i5 | 0) < -1000999)) {
25668 0 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
25669 0 : break;
25670 0 : }
25671 0 : if ((i5 | 0) == -1001e3) {
25672 0 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
25673 0 : break;
25674 0 : }
25675 0 : i5 = -1001e3 - i5 | 0;
25676 0 : i6 = HEAP32[i6 >> 2] | 0;
25677 0 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
25678 0 : i5 = i4 + (i5 + -1 << 4) + 16 | 0;
25679 0 : } else {
25680 0 : i5 = 5192;
25681 0 : }
25682 0 : } else {
25683 0 : i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
25684 0 : i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
25685 0 : }
25686 0 : } while (0);
25687 0 : i4 = HEAP32[i5 + 8 >> 2] & 63;
25688 0 : do {
25689 0 : if ((i4 | 0) == 6) {
25690 0 : i5 = HEAP32[i5 >> 2] | 0;
25691 0 : i4 = HEAP32[i5 + 12 >> 2] | 0;
25692 0 : if ((i3 | 0) <= 0) {
25693 0 : i6 = 0;
25694 0 : STACKTOP = i2;
25695 0 : return i6 | 0;
25696 0 : }
25697 0 : if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
25698 0 : i6 = 0;
25699 0 : STACKTOP = i2;
25700 0 : return i6 | 0;
25701 0 : }
25702 0 : i6 = i3 + -1 | 0;
25703 0 : i3 = HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0;
25704 0 : i5 = HEAP32[i3 + 8 >> 2] | 0;
25705 0 : i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
25706 0 : if ((i4 | 0) == 0) {
25707 0 : i4 = 936;
25708 0 : } else {
25709 0 : i4 = i4 + 16 | 0;
25710 0 : }
25711 0 : } else if ((i4 | 0) == 38) {
25712 0 : i6 = HEAP32[i5 >> 2] | 0;
25713 0 : if ((i3 | 0) <= 0) {
25714 0 : i6 = 0;
25715 0 : STACKTOP = i2;
25716 0 : return i6 | 0;
25717 0 : }
25718 0 : if ((HEAPU8[i6 + 6 | 0] | 0 | 0) >= (i3 | 0)) {
25719 0 : i4 = 936;
25720 0 : i5 = i6 + (i3 + -1 << 4) + 16 | 0;
25721 0 : i3 = i6;
25722 0 : break;
25723 0 : } else {
25724 0 : i6 = 0;
25725 0 : STACKTOP = i2;
25726 0 : return i6 | 0;
25727 0 : }
25728 0 : } else {
25729 0 : i6 = 0;
25730 0 : STACKTOP = i2;
25731 0 : return i6 | 0;
25732 0 : }
25733 0 : } while (0);
25734 0 : i6 = i1 + 8 | 0;
25735 0 : i7 = HEAP32[i6 >> 2] | 0;
25736 0 : i10 = i7 + -16 | 0;
25737 0 : HEAP32[i6 >> 2] = i10;
25738 0 : i9 = HEAP32[i10 + 4 >> 2] | 0;
25739 0 : i8 = i5;
25740 0 : HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
25741 0 : HEAP32[i8 + 4 >> 2] = i9;
25742 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i7 + -8 >> 2];
25743 0 : i5 = HEAP32[i6 >> 2] | 0;
25744 0 : if ((HEAP32[i5 + 8 >> 2] & 64 | 0) == 0) {
25745 0 : i10 = i4;
25746 0 : STACKTOP = i2;
25747 0 : return i10 | 0;
25748 0 : }
25749 0 : i5 = HEAP32[i5 >> 2] | 0;
25750 0 : if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
25751 0 : i10 = i4;
25752 0 : STACKTOP = i2;
25753 0 : return i10 | 0;
25754 0 : }
25755 0 : if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
25756 0 : i10 = i4;
25757 0 : STACKTOP = i2;
25758 0 : return i10 | 0;
25759 0 : }
25760 0 : _luaC_barrier_(i1, i3, i5);
25761 0 : i10 = i4;
25762 0 : STACKTOP = i2;
25763 0 : return i10 | 0;
25764 1 : }
25765 2858 : function _luaC_forcestep(i2) {
25766 2858 : i2 = i2 | 0;
25767 2858 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
25768 2858 : i1 = STACKTOP;
25769 2858 : i3 = HEAP32[i2 + 12 >> 2] | 0;
25770 2858 : do {
25771 2858 : if ((HEAP8[i3 + 62 | 0] | 0) == 2) {
25772 2858 : i4 = i3 + 20 | 0;
25773 2858 : i6 = HEAP32[i4 >> 2] | 0;
25774 2858 : do {
25775 2858 : if ((i6 | 0) != 0) {
25776 2858 : i5 = i3 + 61 | 0;
25777 2858 : if ((HEAP8[i5] | 0) != 5) {
25778 2858 : do {
25779 2858 : _singlestep(i2) | 0;
25780 2858 : } while ((HEAP8[i5] | 0) != 5);
25781 2858 : }
25782 2858 : HEAP8[i5] = 0;
25783 2858 : i5 = HEAP32[i3 + 8 >> 2] | 0;
25784 2858 : i7 = HEAP32[i3 + 12 >> 2] | 0;
25785 2858 : if ((i7 + i5 | 0) >>> 0 > (Math_imul(HEAP32[i3 + 160 >> 2] | 0, (i6 >>> 0) / 100 | 0) | 0) >>> 0) {
25786 2858 : HEAP32[i4 >> 2] = 0;
25787 2858 : break;
25788 2858 : } else {
25789 2858 : HEAP32[i4 >> 2] = i6;
25790 2858 : break;
25791 2858 : }
25792 2858 : } else {
25793 2858 : _luaC_fullgc(i2, 0);
25794 2858 : i5 = HEAP32[i3 + 8 >> 2] | 0;
25795 2858 : i7 = HEAP32[i3 + 12 >> 2] | 0;
25796 2858 : HEAP32[i4 >> 2] = i7 + i5;
25797 2858 : }
25798 2858 : } while (0);
25799 2858 : i4 = i5 + i7 | 0;
25800 2858 : i5 = (i4 | 0) / 100 | 0;
25801 2858 : i6 = HEAP32[i3 + 156 >> 2] | 0;
25802 2858 : if ((i6 | 0) < (2147483644 / (i5 | 0) | 0 | 0)) {
25803 2858 : i5 = Math_imul(i6, i5) | 0;
25804 2858 : } else {
25805 2858 : i5 = 2147483644;
25806 2858 : }
25807 2858 : _luaE_setdebt(i3, i4 - i5 | 0);
25808 2858 : i5 = i3 + 61 | 0;
25809 2858 : } else {
25810 2858 : i4 = i3 + 12 | 0;
25811 2858 : i5 = HEAP32[i3 + 164 >> 2] | 0;
25812 2858 : i7 = (i5 | 0) < 40 ? 40 : i5;
25813 2858 : i5 = ((HEAP32[i4 >> 2] | 0) / 200 | 0) + 1 | 0;
25814 2858 : if ((i5 | 0) < (2147483644 / (i7 | 0) | 0 | 0)) {
25815 2858 : i8 = Math_imul(i5, i7) | 0;
25816 2858 : } else {
25817 2858 : i8 = 2147483644;
25818 2858 : }
25819 2858 : i5 = i3 + 61 | 0;
25820 2858 : do {
25821 2858 : i8 = i8 - (_singlestep(i2) | 0) | 0;
25822 2858 : i9 = (HEAP8[i5] | 0) == 5;
25823 2858 : if (!((i8 | 0) > -1600)) {
25824 2858 : i6 = 17;
25825 2858 : break;
25826 2858 : }
25827 2858 : } while (!i9);
25828 2858 : if ((i6 | 0) == 17 ? !i9 : 0) {
25829 2858 : _luaE_setdebt(i3, ((i8 | 0) / (i7 | 0) | 0) * 200 | 0);
25830 2858 : break;
25831 2858 : }
25832 2858 : i6 = (HEAP32[i3 + 20 >> 2] | 0) / 100 | 0;
25833 2858 : i7 = HEAP32[i3 + 156 >> 2] | 0;
25834 2858 : if ((i7 | 0) < (2147483644 / (i6 | 0) | 0 | 0)) {
25835 2858 : i6 = Math_imul(i7, i6) | 0;
25836 2858 : } else {
25837 2858 : i6 = 2147483644;
25838 2858 : }
25839 2858 : _luaE_setdebt(i3, (HEAP32[i3 + 8 >> 2] | 0) - i6 + (HEAP32[i4 >> 2] | 0) | 0);
25840 2858 : }
25841 2858 : } while (0);
25842 2858 : i3 = i3 + 104 | 0;
25843 2858 : if ((HEAP32[i3 >> 2] | 0) == 0) {
25844 2858 : STACKTOP = i1;
25845 2858 : return;
25846 2858 : } else {
25847 2858 : i4 = 0;
25848 2858 : }
25849 2858 : while (1) {
25850 2858 : if ((i4 | 0) >= 4 ? (HEAP8[i5] | 0) != 5 : 0) {
25851 2858 : i6 = 26;
25852 2858 : break;
25853 2858 : }
25854 2858 : _GCTM(i2, 1);
25855 2858 : if ((HEAP32[i3 >> 2] | 0) == 0) {
25856 2858 : i6 = 26;
25857 2858 : break;
25858 2858 : } else {
25859 2858 : i4 = i4 + 1 | 0;
25860 2858 : }
25861 2858 : }
25862 2858 : if ((i6 | 0) == 26) {
25863 2858 : STACKTOP = i1;
25864 2858 : return;
25865 2858 : }
25866 2858 : }
25867 1 : function _luaL_loadfilex(i1, i9, i7) {
25868 1 : i1 = i1 | 0;
25869 1 : i9 = i9 | 0;
25870 1 : i7 = i7 | 0;
25871 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i10 = 0, i11 = 0;
25872 1 : i5 = STACKTOP;
25873 1 : STACKTOP = STACKTOP + 1056 | 0;
25874 1 : i3 = i5;
25875 1 : i6 = i5 + 16 | 0;
25876 1 : i8 = i5 + 12 | 0;
25877 1 : i2 = (_lua_gettop(i1) | 0) + 1 | 0;
25878 1 : i4 = (i9 | 0) == 0;
25879 1 : if (!i4) {
25880 1 : HEAP32[i3 >> 2] = i9;
25881 1 : _lua_pushfstring(i1, 1304, i3) | 0;
25882 1 : i10 = _fopen(i9 | 0, 1312) | 0;
25883 1 : HEAP32[i6 + 4 >> 2] = i10;
25884 1 : if ((i10 | 0) == 0) {
25885 1 : i10 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
25886 1 : i9 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
25887 1 : HEAP32[i3 >> 2] = 1320;
25888 1 : HEAP32[i3 + 4 >> 2] = i9;
25889 1 : HEAP32[i3 + 8 >> 2] = i10;
25890 1 : _lua_pushfstring(i1, 1720, i3) | 0;
25891 1 : _lua_remove(i1, i2);
25892 1 : i10 = 7;
25893 1 : STACKTOP = i5;
25894 1 : return i10 | 0;
25895 1 : }
25896 1 : } else {
25897 1 : _lua_pushlstring(i1, 1296, 6) | 0;
25898 1 : HEAP32[i6 + 4 >> 2] = HEAP32[_stdin >> 2];
25899 1 : }
25900 1 : if ((_skipcomment(i6, i8) | 0) != 0) {
25901 1 : i10 = HEAP32[i6 >> 2] | 0;
25902 1 : HEAP32[i6 >> 2] = i10 + 1;
25903 1 : HEAP8[i6 + i10 + 8 | 0] = 10;
25904 1 : }
25905 1 : i10 = HEAP32[i8 >> 2] | 0;
25906 1 : do {
25907 1 : if (!((i10 | 0) != 27 | i4)) {
25908 1 : i11 = i6 + 4 | 0;
25909 1 : i10 = _freopen(i9 | 0, 1328, HEAP32[i11 >> 2] | 0) | 0;
25910 1 : HEAP32[i11 >> 2] = i10;
25911 1 : if ((i10 | 0) != 0) {
25912 1 : _skipcomment(i6, i8) | 0;
25913 1 : i10 = HEAP32[i8 >> 2] | 0;
25914 1 : break;
25915 1 : }
25916 1 : i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
25917 1 : i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
25918 1 : HEAP32[i3 >> 2] = 1336;
25919 1 : HEAP32[i3 + 4 >> 2] = i10;
25920 1 : HEAP32[i3 + 8 >> 2] = i11;
25921 1 : _lua_pushfstring(i1, 1720, i3) | 0;
25922 1 : _lua_remove(i1, i2);
25923 1 : i11 = 7;
25924 1 : STACKTOP = i5;
25925 1 : return i11 | 0;
25926 1 : }
25927 1 : } while (0);
25928 1 : if (!((i10 | 0) == -1)) {
25929 1 : i11 = HEAP32[i6 >> 2] | 0;
25930 1 : HEAP32[i6 >> 2] = i11 + 1;
25931 1 : HEAP8[i6 + i11 + 8 | 0] = i10;
25932 1 : }
25933 1 : i7 = _lua_load(i1, 1, i6, _lua_tolstring(i1, -1, 0) | 0, i7) | 0;
25934 1 : i8 = HEAP32[i6 + 4 >> 2] | 0;
25935 1 : i6 = _ferror(i8 | 0) | 0;
25936 1 : if (!i4) {
25937 1 : _fclose(i8 | 0) | 0;
25938 1 : }
25939 1 : if ((i6 | 0) == 0) {
25940 1 : _lua_remove(i1, i2);
25941 1 : i11 = i7;
25942 1 : STACKTOP = i5;
25943 1 : return i11 | 0;
25944 1 : } else {
25945 1 : _lua_settop(i1, i2);
25946 1 : i11 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
25947 1 : i10 = (_lua_tolstring(i1, i2, 0) | 0) + 1 | 0;
25948 1 : HEAP32[i3 >> 2] = 1344;
25949 1 : HEAP32[i3 + 4 >> 2] = i10;
25950 1 : HEAP32[i3 + 8 >> 2] = i11;
25951 1 : _lua_pushfstring(i1, 1720, i3) | 0;
25952 1 : _lua_remove(i1, i2);
25953 1 : i11 = 7;
25954 1 : STACKTOP = i5;
25955 1 : return i11 | 0;
25956 1 : }
25957 1 : return 0;
25958 1 : }
25959 3 : function _newupvalue(i3, i1, i2) {
25960 3 : i3 = i3 | 0;
25961 3 : i1 = i1 | 0;
25962 3 : i2 = i2 | 0;
25963 3 : var i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
25964 3 : i4 = STACKTOP;
25965 3 : STACKTOP = STACKTOP + 16 | 0;
25966 3 : i12 = i4;
25967 3 : i5 = HEAP32[i3 >> 2] | 0;
25968 3 : i9 = i5 + 40 | 0;
25969 3 : i7 = HEAP32[i9 >> 2] | 0;
25970 3 : i6 = i3 + 47 | 0;
25971 3 : i10 = HEAPU8[i6] | 0;
25972 3 : if ((i10 + 1 | 0) >>> 0 > 255) {
25973 3 : i11 = i3 + 12 | 0;
25974 3 : i8 = HEAP32[(HEAP32[i11 >> 2] | 0) + 52 >> 2] | 0;
25975 3 : i13 = HEAP32[i5 + 64 >> 2] | 0;
25976 3 : if ((i13 | 0) == 0) {
25977 3 : i15 = 6552;
25978 3 : HEAP32[i12 >> 2] = 6880;
25979 3 : i14 = i12 + 4 | 0;
25980 3 : HEAP32[i14 >> 2] = 255;
25981 3 : i14 = i12 + 8 | 0;
25982 3 : HEAP32[i14 >> 2] = i15;
25983 3 : i14 = _luaO_pushfstring(i8, 6592, i12) | 0;
25984 3 : i15 = HEAP32[i11 >> 2] | 0;
25985 3 : _luaX_syntaxerror(i15, i14);
25986 3 : }
25987 3 : HEAP32[i12 >> 2] = i13;
25988 3 : i14 = _luaO_pushfstring(i8, 6568, i12) | 0;
25989 3 : HEAP32[i12 >> 2] = 6880;
25990 3 : i15 = i12 + 4 | 0;
25991 3 : HEAP32[i15 >> 2] = 255;
25992 3 : i15 = i12 + 8 | 0;
25993 3 : HEAP32[i15 >> 2] = i14;
25994 3 : i15 = _luaO_pushfstring(i8, 6592, i12) | 0;
25995 3 : i14 = HEAP32[i11 >> 2] | 0;
25996 3 : _luaX_syntaxerror(i14, i15);
25997 3 : }
25998 3 : if ((i10 | 0) < (i7 | 0)) {
25999 3 : i8 = i7;
26000 3 : } else {
26001 3 : i8 = i5 + 28 | 0;
26002 3 : HEAP32[i8 >> 2] = _luaM_growaux_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, HEAP32[i8 >> 2] | 0, i9, 8, 255, 6880) | 0;
26003 3 : i8 = HEAP32[i9 >> 2] | 0;
26004 3 : }
26005 3 : i9 = i5 + 28 | 0;
26006 3 : if ((i7 | 0) < (i8 | 0)) {
26007 3 : while (1) {
26008 3 : i10 = i7 + 1 | 0;
26009 3 : HEAP32[(HEAP32[i9 >> 2] | 0) + (i7 << 3) >> 2] = 0;
26010 3 : if ((i10 | 0) < (i8 | 0)) {
26011 3 : i7 = i10;
26012 3 : } else {
26013 3 : break;
26014 3 : }
26015 3 : }
26016 3 : }
26017 3 : HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 4 | 0] = (HEAP32[i2 >> 2] | 0) == 7 | 0;
26018 3 : HEAP8[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) + 5 | 0] = HEAP32[i2 + 8 >> 2];
26019 3 : HEAP32[(HEAP32[i9 >> 2] | 0) + ((HEAPU8[i6] | 0) << 3) >> 2] = i1;
26020 3 : if ((HEAP8[i1 + 5 | 0] & 3) == 0) {
26021 3 : i15 = HEAP8[i6] | 0;
26022 3 : i14 = i15 + 1 << 24 >> 24;
26023 3 : HEAP8[i6] = i14;
26024 3 : i15 = i15 & 255;
26025 3 : STACKTOP = i4;
26026 3 : return i15 | 0;
26027 3 : }
26028 3 : if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
26029 3 : i15 = HEAP8[i6] | 0;
26030 3 : i14 = i15 + 1 << 24 >> 24;
26031 3 : HEAP8[i6] = i14;
26032 3 : i15 = i15 & 255;
26033 3 : STACKTOP = i4;
26034 3 : return i15 | 0;
26035 3 : }
26036 3 : _luaC_barrier_(HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 52 >> 2] | 0, i5, i1);
26037 3 : i15 = HEAP8[i6] | 0;
26038 3 : i14 = i15 + 1 << 24 >> 24;
26039 3 : HEAP8[i6] = i14;
26040 3 : i15 = i15 & 255;
26041 3 : STACKTOP = i4;
26042 3 : return i15 | 0;
26043 3 : }
26044 3 : function _close_func(i1) {
26045 3 : i1 = i1 | 0;
26046 3 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
26047 3 : i6 = STACKTOP;
26048 3 : i2 = HEAP32[i1 + 52 >> 2] | 0;
26049 3 : i5 = i1 + 48 | 0;
26050 3 : i4 = HEAP32[i5 >> 2] | 0;
26051 3 : i3 = HEAP32[i4 >> 2] | 0;
26052 3 : _luaK_ret(i4, 0, 0);
26053 3 : _leaveblock(i4);
26054 3 : i7 = i4 + 20 | 0;
26055 3 : i8 = HEAP32[i7 >> 2] | 0;
26056 3 : if ((i8 + 1 | 0) >>> 0 > 1073741823) {
26057 3 : _luaM_toobig(i2);
26058 3 : }
26059 3 : i10 = i3 + 12 | 0;
26060 3 : i9 = i3 + 48 | 0;
26061 3 : HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 2, i8 << 2) | 0;
26062 3 : HEAP32[i9 >> 2] = HEAP32[i7 >> 2];
26063 3 : i8 = HEAP32[i7 >> 2] | 0;
26064 3 : if ((i8 + 1 | 0) >>> 0 > 1073741823) {
26065 3 : _luaM_toobig(i2);
26066 3 : }
26067 3 : i9 = i3 + 20 | 0;
26068 3 : i10 = i3 + 52 | 0;
26069 3 : HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i8 << 2) | 0;
26070 3 : HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
26071 3 : i8 = i4 + 32 | 0;
26072 3 : i7 = HEAP32[i8 >> 2] | 0;
26073 3 : if ((i7 + 1 | 0) >>> 0 > 268435455) {
26074 3 : _luaM_toobig(i2);
26075 3 : }
26076 3 : i9 = i3 + 8 | 0;
26077 3 : i10 = i3 + 44 | 0;
26078 3 : HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 4, i7 << 4) | 0;
26079 3 : HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
26080 3 : i8 = i4 + 36 | 0;
26081 3 : i7 = HEAP32[i8 >> 2] | 0;
26082 3 : if ((i7 + 1 | 0) >>> 0 > 1073741823) {
26083 3 : _luaM_toobig(i2);
26084 3 : }
26085 3 : i9 = i3 + 16 | 0;
26086 3 : i10 = i3 + 56 | 0;
26087 3 : HEAP32[i9 >> 2] = _luaM_realloc_(i2, HEAP32[i9 >> 2] | 0, HEAP32[i10 >> 2] << 2, i7 << 2) | 0;
26088 3 : HEAP32[i10 >> 2] = HEAP32[i8 >> 2];
26089 3 : i7 = i4 + 44 | 0;
26090 3 : i8 = HEAP16[i7 >> 1] | 0;
26091 3 : if ((i8 + 1 | 0) >>> 0 > 357913941) {
26092 3 : _luaM_toobig(i2);
26093 3 : }
26094 3 : i10 = i3 + 24 | 0;
26095 3 : i9 = i3 + 60 | 0;
26096 3 : HEAP32[i10 >> 2] = _luaM_realloc_(i2, HEAP32[i10 >> 2] | 0, (HEAP32[i9 >> 2] | 0) * 12 | 0, i8 * 12 | 0) | 0;
26097 3 : HEAP32[i9 >> 2] = HEAP16[i7 >> 1] | 0;
26098 3 : i9 = i4 + 47 | 0;
26099 3 : i8 = i3 + 28 | 0;
26100 3 : i10 = i3 + 40 | 0;
26101 3 : HEAP32[i8 >> 2] = _luaM_realloc_(i2, HEAP32[i8 >> 2] | 0, HEAP32[i10 >> 2] << 3, HEAPU8[i9] << 3) | 0;
26102 3 : HEAP32[i10 >> 2] = HEAPU8[i9] | 0;
26103 3 : HEAP32[i5 >> 2] = HEAP32[i4 + 8 >> 2];
26104 3 : if (((HEAP32[i1 + 16 >> 2] | 0) + -288 | 0) >>> 0 < 2) {
26105 3 : i10 = HEAP32[i1 + 24 >> 2] | 0;
26106 3 : _luaX_newstring(i1, i10 + 16 | 0, HEAP32[i10 + 12 >> 2] | 0) | 0;
26107 3 : }
26108 3 : i10 = i2 + 8 | 0;
26109 3 : HEAP32[i10 >> 2] = (HEAP32[i10 >> 2] | 0) + -16;
26110 3 : if ((HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) <= 0) {
26111 3 : STACKTOP = i6;
26112 3 : return;
26113 3 : }
26114 3 : _luaC_step(i2);
26115 3 : STACKTOP = i6;
26116 3 : return;
26117 3 : }
26118 1 : function _lua_topointer(i3, i6) {
26119 0 : i3 = i3 | 0;
26120 0 : i6 = i6 | 0;
26121 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
26122 0 : i1 = STACKTOP;
26123 0 : i4 = HEAP32[i3 + 16 >> 2] | 0;
26124 0 : i5 = (i6 | 0) > 0;
26125 0 : do {
26126 0 : if (!i5) {
26127 0 : if (!((i6 | 0) < -1000999)) {
26128 0 : i7 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
26129 0 : break;
26130 0 : }
26131 0 : if ((i6 | 0) == -1001e3) {
26132 0 : i7 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
26133 0 : break;
26134 0 : }
26135 0 : i8 = -1001e3 - i6 | 0;
26136 0 : i9 = HEAP32[i4 >> 2] | 0;
26137 0 : if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
26138 0 : i7 = i7 + (i8 + -1 << 4) + 16 | 0;
26139 0 : } else {
26140 0 : i7 = 5192;
26141 0 : }
26142 0 : } else {
26143 0 : i7 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
26144 0 : i7 = i7 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
26145 0 : }
26146 0 : } while (0);
26147 0 : switch (HEAP32[i7 + 8 >> 2] & 63 | 0) {
26148 0 : case 22:
26149 0 : {
26150 0 : i9 = HEAP32[i7 >> 2] | 0;
26151 0 : STACKTOP = i1;
26152 0 : return i9 | 0;
26153 0 : }
26154 0 : case 2:
26155 0 : case 7:
26156 0 : {
26157 0 : do {
26158 0 : if (!i5) {
26159 0 : if (!((i6 | 0) < -1000999)) {
26160 0 : i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
26161 0 : break;
26162 0 : }
26163 0 : if ((i6 | 0) == -1001e3) {
26164 0 : i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
26165 0 : break;
26166 0 : }
26167 0 : i3 = -1001e3 - i6 | 0;
26168 0 : i4 = HEAP32[i4 >> 2] | 0;
26169 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
26170 0 : i2 = i2 + (i3 + -1 << 4) + 16 | 0;
26171 0 : } else {
26172 0 : i2 = 5192;
26173 0 : }
26174 0 : } else {
26175 0 : i2 = (HEAP32[i4 >> 2] | 0) + (i6 << 4) | 0;
26176 0 : i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
26177 0 : }
26178 0 : } while (0);
26179 0 : i3 = HEAP32[i2 + 8 >> 2] & 15;
26180 0 : if ((i3 | 0) == 7) {
26181 0 : i9 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
26182 0 : STACKTOP = i1;
26183 0 : return i9 | 0;
26184 0 : } else if ((i3 | 0) == 2) {
26185 0 : i9 = HEAP32[i2 >> 2] | 0;
26186 0 : STACKTOP = i1;
26187 0 : return i9 | 0;
26188 0 : } else {
26189 0 : i9 = 0;
26190 0 : STACKTOP = i1;
26191 0 : return i9 | 0;
26192 0 : }
26193 0 : }
26194 0 : case 8:
26195 0 : {
26196 0 : i9 = HEAP32[i7 >> 2] | 0;
26197 0 : STACKTOP = i1;
26198 0 : return i9 | 0;
26199 0 : }
26200 0 : case 5:
26201 0 : {
26202 0 : i9 = HEAP32[i7 >> 2] | 0;
26203 0 : STACKTOP = i1;
26204 0 : return i9 | 0;
26205 0 : }
26206 0 : case 38:
26207 0 : {
26208 0 : i9 = HEAP32[i7 >> 2] | 0;
26209 0 : STACKTOP = i1;
26210 0 : return i9 | 0;
26211 0 : }
26212 0 : case 6:
26213 0 : {
26214 0 : i9 = HEAP32[i7 >> 2] | 0;
26215 0 : STACKTOP = i1;
26216 0 : return i9 | 0;
26217 0 : }
26218 0 : default:
26219 0 : {
26220 0 : i9 = 0;
26221 0 : STACKTOP = i1;
26222 0 : return i9 | 0;
26223 0 : }
26224 0 : }
26225 0 : return 0;
26226 1 : }
26227 427853 : function _luaH_get(i4, i6) {
26228 427853 : i4 = i4 | 0;
26229 427853 : i6 = i6 | 0;
26230 427853 : var i1 = 0, i2 = 0, i3 = 0, d5 = 0.0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, d11 = 0.0;
26231 427853 : i3 = STACKTOP;
26232 427853 : STACKTOP = STACKTOP + 16 | 0;
26233 427853 : i8 = i3 + 8 | 0;
26234 427853 : i9 = i3;
26235 427853 : i7 = i6 + 8 | 0;
26236 427853 : i10 = HEAP32[i7 >> 2] & 63;
26237 427853 : if ((i10 | 0) == 4) {
26238 427853 : i6 = HEAP32[i6 >> 2] | 0;
26239 427853 : i7 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i6 + 8 >> 2]) << 5) | 0;
26240 427853 : while (1) {
26241 427853 : if ((HEAP32[i7 + 24 >> 2] | 0) == 68 ? (HEAP32[i7 + 16 >> 2] | 0) == (i6 | 0) : 0) {
26242 427853 : break;
26243 427853 : }
26244 427853 : i4 = HEAP32[i7 + 28 >> 2] | 0;
26245 427853 : if ((i4 | 0) == 0) {
26246 427853 : i2 = 5192;
26247 427853 : i1 = 22;
26248 427853 : break;
26249 427853 : } else {
26250 427853 : i7 = i4;
26251 427853 : }
26252 427853 : }
26253 427853 : if ((i1 | 0) == 22) {
26254 427853 : STACKTOP = i3;
26255 427853 : return i2 | 0;
26256 427853 : }
26257 427853 : i10 = i7;
26258 427853 : STACKTOP = i3;
26259 427853 : return i10 | 0;
26260 427853 : } else if ((i10 | 0) == 3) {
26261 427853 : d11 = +HEAPF64[i6 >> 3];
26262 427853 : HEAPF64[i9 >> 3] = d11 + 6755399441055744.0;
26263 427853 : i9 = HEAP32[i9 >> 2] | 0;
26264 427853 : d5 = +(i9 | 0);
26265 427853 : if (d5 == d11) {
26266 427853 : i6 = i9 + -1 | 0;
26267 427853 : if (i6 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
26268 427853 : i10 = (HEAP32[i4 + 12 >> 2] | 0) + (i6 << 4) | 0;
26269 427853 : STACKTOP = i3;
26270 427853 : return i10 | 0;
26271 427853 : }
26272 427853 : HEAPF64[i8 >> 3] = d5 + 1.0;
26273 427853 : i6 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
26274 427853 : if ((i6 | 0) < 0) {
26275 427853 : i7 = 0 - i6 | 0;
26276 427853 : i6 = (i6 | 0) == (i7 | 0) ? 0 : i7;
26277 427853 : }
26278 427853 : i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i6 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
26279 427853 : while (1) {
26280 427853 : if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d5 : 0) {
26281 427853 : break;
26282 427853 : }
26283 427853 : i6 = HEAP32[i4 + 28 >> 2] | 0;
26284 427853 : if ((i6 | 0) == 0) {
26285 427853 : i2 = 5192;
26286 427853 : i1 = 22;
26287 427853 : break;
26288 427853 : } else {
26289 427853 : i4 = i6;
26290 427853 : }
26291 427853 : }
26292 427853 : if ((i1 | 0) == 22) {
26293 427853 : STACKTOP = i3;
26294 427853 : return i2 | 0;
26295 427853 : }
26296 427853 : i10 = i4;
26297 427853 : STACKTOP = i3;
26298 427853 : return i10 | 0;
26299 427853 : }
26300 427853 : } else if ((i10 | 0) == 0) {
26301 427853 : i10 = 5192;
26302 427853 : STACKTOP = i3;
26303 427853 : return i10 | 0;
26304 427853 : }
26305 427853 : i8 = _mainposition(i4, i6) | 0;
26306 427853 : while (1) {
26307 427853 : if ((HEAP32[i8 + 24 >> 2] | 0) == (HEAP32[i7 >> 2] | 0) ? (_luaV_equalobj_(0, i8 + 16 | 0, i6) | 0) != 0 : 0) {
26308 427853 : break;
26309 427853 : }
26310 427853 : i4 = HEAP32[i8 + 28 >> 2] | 0;
26311 427853 : if ((i4 | 0) == 0) {
26312 427853 : i2 = 5192;
26313 427853 : i1 = 22;
26314 427853 : break;
26315 427853 : } else {
26316 427853 : i8 = i4;
26317 427853 : }
26318 427853 : }
26319 427853 : if ((i1 | 0) == 22) {
26320 427853 : STACKTOP = i3;
26321 427853 : return i2 | 0;
26322 427853 : }
26323 427853 : i10 = i8;
26324 427853 : STACKTOP = i3;
26325 427853 : return i10 | 0;
26326 427853 : }
26327 77 : function _suffixedexp(i1, i8) {
26328 77 : i1 = i1 | 0;
26329 77 : i8 = i8 | 0;
26330 77 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
26331 77 : i2 = STACKTOP;
26332 77 : STACKTOP = STACKTOP + 80 | 0;
26333 77 : i10 = i2 + 48 | 0;
26334 77 : i3 = i2 + 24 | 0;
26335 77 : i6 = i2;
26336 77 : i4 = i1 + 48 | 0;
26337 77 : i9 = HEAP32[i4 >> 2] | 0;
26338 77 : i5 = HEAP32[i1 + 4 >> 2] | 0;
26339 77 : i7 = i1 + 16 | 0;
26340 77 : i12 = HEAP32[i7 >> 2] | 0;
26341 77 : if ((i12 | 0) == 40) {
26342 77 : _luaX_next(i1);
26343 77 : _subexpr(i1, i8, 0) | 0;
26344 77 : _check_match(i1, 41, 40, i5);
26345 77 : _luaK_dischargevars(HEAP32[i4 >> 2] | 0, i8);
26346 77 : i11 = i1 + 24 | 0;
26347 77 : } else if ((i12 | 0) == 288) {
26348 77 : i11 = i1 + 24 | 0;
26349 77 : i13 = HEAP32[i11 >> 2] | 0;
26350 77 : _luaX_next(i1);
26351 77 : i12 = HEAP32[i4 >> 2] | 0;
26352 77 : if ((_singlevaraux(i12, i13, i8, 1) | 0) == 0) {
26353 77 : _singlevaraux(i12, HEAP32[i1 + 72 >> 2] | 0, i8, 1) | 0;
26354 77 : i13 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i13) | 0;
26355 77 : HEAP32[i10 + 16 >> 2] = -1;
26356 77 : HEAP32[i10 + 20 >> 2] = -1;
26357 77 : HEAP32[i10 >> 2] = 4;
26358 77 : HEAP32[i10 + 8 >> 2] = i13;
26359 77 : _luaK_indexed(i12, i8, i10);
26360 77 : }
26361 77 : } else {
26362 77 : _luaX_syntaxerror(i1, 6656);
26363 77 : }
26364 77 : i10 = i6 + 16 | 0;
26365 77 : i12 = i6 + 20 | 0;
26366 77 : i13 = i6 + 8 | 0;
26367 77 : L7 : while (1) {
26368 77 : switch (HEAP32[i7 >> 2] | 0) {
26369 77 : case 46:
26370 77 : {
26371 77 : _fieldsel(i1, i8);
26372 77 : continue L7;
26373 77 : }
26374 77 : case 91:
26375 77 : {
26376 77 : _luaK_exp2anyregup(i9, i8);
26377 77 : _luaX_next(i1);
26378 77 : _subexpr(i1, i3, 0) | 0;
26379 77 : _luaK_exp2val(HEAP32[i4 >> 2] | 0, i3);
26380 77 : if ((HEAP32[i7 >> 2] | 0) != 93) {
26381 77 : i3 = 10;
26382 77 : break L7;
26383 77 : }
26384 77 : _luaX_next(i1);
26385 77 : _luaK_indexed(i9, i8, i3);
26386 77 : continue L7;
26387 77 : }
26388 77 : case 58:
26389 77 : {
26390 77 : _luaX_next(i1);
26391 77 : if ((HEAP32[i7 >> 2] | 0) != 288) {
26392 77 : i3 = 13;
26393 77 : break L7;
26394 77 : }
26395 77 : i14 = HEAP32[i11 >> 2] | 0;
26396 77 : _luaX_next(i1);
26397 77 : i14 = _luaK_stringK(HEAP32[i4 >> 2] | 0, i14) | 0;
26398 77 : HEAP32[i10 >> 2] = -1;
26399 77 : HEAP32[i12 >> 2] = -1;
26400 77 : HEAP32[i6 >> 2] = 4;
26401 77 : HEAP32[i13 >> 2] = i14;
26402 77 : _luaK_self(i9, i8, i6);
26403 77 : _funcargs(i1, i8, i5);
26404 77 : continue L7;
26405 77 : }
26406 77 : case 123:
26407 77 : case 289:
26408 77 : case 40:
26409 77 : {
26410 77 : _luaK_exp2nextreg(i9, i8);
26411 77 : _funcargs(i1, i8, i5);
26412 77 : continue L7;
26413 77 : }
26414 77 : default:
26415 77 : {
26416 77 : i3 = 16;
26417 77 : break L7;
26418 77 : }
26419 77 : }
26420 77 : }
26421 77 : if ((i3 | 0) == 10) {
26422 77 : _error_expected(i1, 93);
26423 77 : } else if ((i3 | 0) == 13) {
26424 77 : _error_expected(i1, 288);
26425 77 : } else if ((i3 | 0) == 16) {
26426 77 : STACKTOP = i2;
26427 77 : return;
26428 77 : }
26429 77 : }
26430 2 : function _luaK_patchlist(i2, i7, i3) {
26431 2 : i2 = i2 | 0;
26432 2 : i7 = i7 | 0;
26433 2 : i3 = i3 | 0;
26434 2 : var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
26435 2 : i1 = STACKTOP;
26436 2 : if ((HEAP32[i2 + 20 >> 2] | 0) == (i3 | 0)) {
26437 2 : HEAP32[i2 + 24 >> 2] = i3;
26438 2 : i3 = i2 + 28 | 0;
26439 2 : if ((i7 | 0) == -1) {
26440 2 : STACKTOP = i1;
26441 2 : return;
26442 2 : }
26443 2 : i6 = HEAP32[i3 >> 2] | 0;
26444 2 : if ((i6 | 0) == -1) {
26445 2 : HEAP32[i3 >> 2] = i7;
26446 2 : STACKTOP = i1;
26447 2 : return;
26448 2 : }
26449 2 : i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
26450 2 : while (1) {
26451 2 : i3 = i5 + (i6 << 2) | 0;
26452 2 : i4 = HEAP32[i3 >> 2] | 0;
26453 2 : i8 = (i4 >>> 14) + -131071 | 0;
26454 2 : if ((i8 | 0) == -1) {
26455 2 : break;
26456 2 : }
26457 2 : i8 = i6 + 1 + i8 | 0;
26458 2 : if ((i8 | 0) == -1) {
26459 2 : break;
26460 2 : } else {
26461 2 : i6 = i8;
26462 2 : }
26463 2 : }
26464 2 : i5 = ~i6 + i7 | 0;
26465 2 : if ((((i5 | 0) > -1 ? i5 : 0 - i5 | 0) | 0) > 131071) {
26466 2 : _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
26467 2 : }
26468 2 : HEAP32[i3 >> 2] = (i5 << 14) + 2147467264 | i4 & 16383;
26469 2 : STACKTOP = i1;
26470 2 : return;
26471 2 : }
26472 2 : if ((i7 | 0) == -1) {
26473 2 : STACKTOP = i1;
26474 2 : return;
26475 2 : }
26476 2 : i6 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
26477 2 : i10 = i7;
26478 2 : while (1) {
26479 2 : i7 = i6 + (i10 << 2) | 0;
26480 2 : i9 = HEAP32[i7 >> 2] | 0;
26481 2 : i8 = (i9 >>> 14) + -131071 | 0;
26482 2 : if ((i8 | 0) == -1) {
26483 2 : i8 = -1;
26484 2 : } else {
26485 2 : i8 = i10 + 1 + i8 | 0;
26486 2 : }
26487 2 : if ((i10 | 0) > 0 ? (i4 = i6 + (i10 + -1 << 2) | 0, i5 = HEAP32[i4 >> 2] | 0, (HEAP8[5584 + (i5 & 63) | 0] | 0) < 0) : 0) {
26488 2 : i12 = i4;
26489 2 : i11 = i5;
26490 2 : } else {
26491 2 : i12 = i7;
26492 2 : i11 = i9;
26493 2 : }
26494 2 : if ((i11 & 63 | 0) == 28) {
26495 2 : HEAP32[i12 >> 2] = i11 & 8372224 | i11 >>> 23 << 6 | 27;
26496 2 : i9 = ~i10 + i3 | 0;
26497 2 : if ((((i9 | 0) > -1 ? i9 : 0 - i9 | 0) | 0) > 131071) {
26498 2 : i3 = 20;
26499 2 : break;
26500 2 : }
26501 2 : i9 = HEAP32[i7 >> 2] & 16383 | (i9 << 14) + 2147467264;
26502 2 : } else {
26503 2 : i10 = ~i10 + i3 | 0;
26504 2 : if ((((i10 | 0) > -1 ? i10 : 0 - i10 | 0) | 0) > 131071) {
26505 2 : i3 = 23;
26506 2 : break;
26507 2 : }
26508 2 : i9 = i9 & 16383 | (i10 << 14) + 2147467264;
26509 2 : }
26510 2 : HEAP32[i7 >> 2] = i9;
26511 2 : if ((i8 | 0) == -1) {
26512 2 : i3 = 26;
26513 2 : break;
26514 2 : } else {
26515 2 : i10 = i8;
26516 2 : }
26517 2 : }
26518 2 : if ((i3 | 0) == 20) {
26519 2 : _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
26520 2 : } else if ((i3 | 0) == 23) {
26521 2 : _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10624);
26522 2 : } else if ((i3 | 0) == 26) {
26523 2 : STACKTOP = i1;
26524 2 : return;
26525 2 : }
26526 2 : }
26527 1 : function _luaG_typeerror(i5, i6, i1) {
26528 0 : i5 = i5 | 0;
26529 0 : i6 = i6 | 0;
26530 0 : i1 = i1 | 0;
26531 0 : var i2 = 0, i3 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
26532 0 : i2 = STACKTOP;
26533 0 : STACKTOP = STACKTOP + 32 | 0;
26534 0 : i3 = i2;
26535 0 : i2 = i2 + 16 | 0;
26536 0 : i8 = HEAP32[i5 + 16 >> 2] | 0;
26537 0 : HEAP32[i2 >> 2] = 0;
26538 0 : i4 = HEAP32[8528 + ((HEAP32[i6 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
26539 0 : L1 : do {
26540 0 : if (!((HEAP8[i8 + 18 | 0] & 1) == 0)) {
26541 0 : i7 = HEAP32[HEAP32[i8 >> 2] >> 2] | 0;
26542 0 : i10 = HEAP8[i7 + 6 | 0] | 0;
26543 0 : L3 : do {
26544 0 : if (!(i10 << 24 >> 24 == 0)) {
26545 0 : i9 = i7 + 16 | 0;
26546 0 : i11 = i10 & 255;
26547 0 : i10 = 0;
26548 0 : while (1) {
26549 0 : i12 = i10 + 1 | 0;
26550 0 : if ((HEAP32[(HEAP32[i9 + (i10 << 2) >> 2] | 0) + 8 >> 2] | 0) == (i6 | 0)) {
26551 0 : break;
26552 0 : }
26553 0 : if ((i12 | 0) < (i11 | 0)) {
26554 0 : i10 = i12;
26555 0 : } else {
26556 0 : break L3;
26557 0 : }
26558 0 : }
26559 0 : i9 = HEAP32[(HEAP32[(HEAP32[i7 + 12 >> 2] | 0) + 28 >> 2] | 0) + (i10 << 3) >> 2] | 0;
26560 0 : if ((i9 | 0) == 0) {
26561 0 : i9 = 2104;
26562 0 : } else {
26563 0 : i9 = i9 + 16 | 0;
26564 0 : }
26565 0 : HEAP32[i2 >> 2] = i9;
26566 0 : i11 = i9;
26567 0 : i10 = 2072;
26568 0 : HEAP32[i3 >> 2] = i1;
26569 0 : i12 = i3 + 4 | 0;
26570 0 : HEAP32[i12 >> 2] = i10;
26571 0 : i12 = i3 + 8 | 0;
26572 0 : HEAP32[i12 >> 2] = i11;
26573 0 : i12 = i3 + 12 | 0;
26574 0 : HEAP32[i12 >> 2] = i4;
26575 0 : _luaG_runerror(i5, 1840, i3);
26576 0 : }
26577 0 : } while (0);
26578 0 : i9 = HEAP32[i8 + 24 >> 2] | 0;
26579 0 : i10 = HEAP32[i8 + 4 >> 2] | 0;
26580 0 : if (i9 >>> 0 < i10 >>> 0) {
26581 0 : i12 = i9;
26582 0 : while (1) {
26583 0 : i11 = i12 + 16 | 0;
26584 0 : if ((i12 | 0) == (i6 | 0)) {
26585 0 : break;
26586 0 : }
26587 0 : if (i11 >>> 0 < i10 >>> 0) {
26588 0 : i12 = i11;
26589 0 : } else {
26590 0 : break L1;
26591 0 : }
26592 0 : }
26593 0 : i12 = HEAP32[i7 + 12 >> 2] | 0;
26594 0 : i6 = _getobjname(i12, ((HEAP32[i8 + 28 >> 2] | 0) - (HEAP32[i12 + 12 >> 2] | 0) >> 2) + -1 | 0, i6 - i9 >> 4, i2) | 0;
26595 0 : if ((i6 | 0) != 0) {
26596 0 : i11 = HEAP32[i2 >> 2] | 0;
26597 0 : i10 = i6;
26598 0 : HEAP32[i3 >> 2] = i1;
26599 0 : i12 = i3 + 4 | 0;
26600 0 : HEAP32[i12 >> 2] = i10;
26601 0 : i12 = i3 + 8 | 0;
26602 0 : HEAP32[i12 >> 2] = i11;
26603 0 : i12 = i3 + 12 | 0;
26604 0 : HEAP32[i12 >> 2] = i4;
26605 0 : _luaG_runerror(i5, 1840, i3);
26606 0 : }
26607 0 : }
26608 0 : }
26609 0 : } while (0);
26610 0 : HEAP32[i3 >> 2] = i1;
26611 0 : HEAP32[i3 + 4 >> 2] = i4;
26612 0 : _luaG_runerror(i5, 1880, i3);
26613 1 : }
26614 5 : function _lua_setmetatable(i1, i7) {
26615 5 : i1 = i1 | 0;
26616 5 : i7 = i7 | 0;
26617 5 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
26618 5 : i4 = STACKTOP;
26619 5 : i6 = HEAP32[i1 + 16 >> 2] | 0;
26620 5 : do {
26621 5 : if ((i7 | 0) <= 0) {
26622 5 : if (!((i7 | 0) < -1000999)) {
26623 5 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i7 << 4) | 0;
26624 5 : break;
26625 5 : }
26626 5 : if ((i7 | 0) == -1001e3) {
26627 5 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
26628 5 : break;
26629 5 : }
26630 5 : i7 = -1001e3 - i7 | 0;
26631 5 : i6 = HEAP32[i6 >> 2] | 0;
26632 5 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
26633 5 : i5 = i5 + (i7 + -1 << 4) + 16 | 0;
26634 5 : } else {
26635 5 : i5 = 5192;
26636 5 : }
26637 5 : } else {
26638 5 : i5 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
26639 5 : i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
26640 5 : }
26641 5 : } while (0);
26642 5 : i6 = i1 + 8 | 0;
26643 5 : i7 = HEAP32[i6 >> 2] | 0;
26644 5 : if ((HEAP32[i7 + -8 >> 2] | 0) == 0) {
26645 5 : i7 = 0;
26646 5 : } else {
26647 5 : i7 = HEAP32[i7 + -16 >> 2] | 0;
26648 5 : }
26649 5 : i8 = HEAP32[i5 + 8 >> 2] & 15;
26650 5 : if ((i8 | 0) == 5) {
26651 5 : HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
26652 5 : if ((i7 | 0) == 0) {
26653 5 : i8 = HEAP32[i6 >> 2] | 0;
26654 5 : i8 = i8 + -16 | 0;
26655 5 : HEAP32[i6 >> 2] = i8;
26656 5 : STACKTOP = i4;
26657 5 : return 1;
26658 5 : }
26659 5 : if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
26660 5 : _luaC_barrierback_(i1, i2);
26661 5 : }
26662 5 : _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
26663 5 : i8 = HEAP32[i6 >> 2] | 0;
26664 5 : i8 = i8 + -16 | 0;
26665 5 : HEAP32[i6 >> 2] = i8;
26666 5 : STACKTOP = i4;
26667 5 : return 1;
26668 5 : } else if ((i8 | 0) == 7) {
26669 5 : HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = i7;
26670 5 : if ((i7 | 0) == 0) {
26671 5 : i8 = HEAP32[i6 >> 2] | 0;
26672 5 : i8 = i8 + -16 | 0;
26673 5 : HEAP32[i6 >> 2] = i8;
26674 5 : STACKTOP = i4;
26675 5 : return 1;
26676 5 : }
26677 5 : if (!((HEAP8[i7 + 5 | 0] & 3) == 0) ? (i3 = HEAP32[i5 >> 2] | 0, !((HEAP8[i3 + 5 | 0] & 4) == 0)) : 0) {
26678 5 : _luaC_barrier_(i1, i3, i7);
26679 5 : }
26680 5 : _luaC_checkfinalizer(i1, HEAP32[i5 >> 2] | 0, i7);
26681 5 : i8 = HEAP32[i6 >> 2] | 0;
26682 5 : i8 = i8 + -16 | 0;
26683 5 : HEAP32[i6 >> 2] = i8;
26684 5 : STACKTOP = i4;
26685 5 : return 1;
26686 5 : } else {
26687 5 : HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i8 << 2) + 252 >> 2] = i7;
26688 5 : i8 = HEAP32[i6 >> 2] | 0;
26689 5 : i8 = i8 + -16 | 0;
26690 5 : HEAP32[i6 >> 2] = i8;
26691 5 : STACKTOP = i4;
26692 5 : return 1;
26693 5 : }
26694 5 : return 0;
26695 5 : }
26696 1 : function _recfield(i2, i10) {
26697 0 : i2 = i2 | 0;
26698 0 : i10 = i10 | 0;
26699 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
26700 0 : i1 = STACKTOP;
26701 0 : STACKTOP = STACKTOP + 64 | 0;
26702 0 : i9 = i1 + 48 | 0;
26703 0 : i6 = i1 + 24 | 0;
26704 0 : i3 = i1;
26705 0 : i13 = i2 + 48 | 0;
26706 0 : i8 = HEAP32[i13 >> 2] | 0;
26707 0 : i5 = i8 + 48 | 0;
26708 0 : i4 = HEAP8[i5] | 0;
26709 0 : i7 = i2 + 16 | 0;
26710 0 : do {
26711 0 : if ((HEAP32[i7 >> 2] | 0) != 288) {
26712 0 : _luaX_next(i2);
26713 0 : _subexpr(i2, i6, 0) | 0;
26714 0 : _luaK_exp2val(HEAP32[i13 >> 2] | 0, i6);
26715 0 : if ((HEAP32[i7 >> 2] | 0) == 93) {
26716 0 : _luaX_next(i2);
26717 0 : i11 = i10 + 28 | 0;
26718 0 : break;
26719 0 : } else {
26720 0 : _error_expected(i2, 93);
26721 0 : }
26722 0 : } else {
26723 0 : i12 = i10 + 28 | 0;
26724 0 : if ((HEAP32[i12 >> 2] | 0) <= 2147483645) {
26725 0 : i11 = HEAP32[i2 + 24 >> 2] | 0;
26726 0 : _luaX_next(i2);
26727 0 : i11 = _luaK_stringK(HEAP32[i13 >> 2] | 0, i11) | 0;
26728 0 : HEAP32[i6 + 16 >> 2] = -1;
26729 0 : HEAP32[i6 + 20 >> 2] = -1;
26730 0 : HEAP32[i6 >> 2] = 4;
26731 0 : HEAP32[i6 + 8 >> 2] = i11;
26732 0 : i11 = i12;
26733 0 : break;
26734 0 : }
26735 0 : i14 = i8 + 12 | 0;
26736 0 : i13 = HEAP32[(HEAP32[i14 >> 2] | 0) + 52 >> 2] | 0;
26737 0 : i12 = HEAP32[(HEAP32[i8 >> 2] | 0) + 64 >> 2] | 0;
26738 0 : if ((i12 | 0) == 0) {
26739 0 : i16 = 6552;
26740 0 : HEAP32[i9 >> 2] = 6528;
26741 0 : i15 = i9 + 4 | 0;
26742 0 : HEAP32[i15 >> 2] = 2147483645;
26743 0 : i15 = i9 + 8 | 0;
26744 0 : HEAP32[i15 >> 2] = i16;
26745 0 : i15 = _luaO_pushfstring(i13, 6592, i9) | 0;
26746 0 : i16 = HEAP32[i14 >> 2] | 0;
26747 0 : _luaX_syntaxerror(i16, i15);
26748 0 : }
26749 0 : HEAP32[i9 >> 2] = i12;
26750 0 : i15 = _luaO_pushfstring(i13, 6568, i9) | 0;
26751 0 : HEAP32[i9 >> 2] = 6528;
26752 0 : i16 = i9 + 4 | 0;
26753 0 : HEAP32[i16 >> 2] = 2147483645;
26754 0 : i16 = i9 + 8 | 0;
26755 0 : HEAP32[i16 >> 2] = i15;
26756 0 : i16 = _luaO_pushfstring(i13, 6592, i9) | 0;
26757 0 : i15 = HEAP32[i14 >> 2] | 0;
26758 0 : _luaX_syntaxerror(i15, i16);
26759 0 : }
26760 0 : } while (0);
26761 0 : HEAP32[i11 >> 2] = (HEAP32[i11 >> 2] | 0) + 1;
26762 0 : if ((HEAP32[i7 >> 2] | 0) == 61) {
26763 0 : _luaX_next(i2);
26764 0 : i16 = _luaK_exp2RK(i8, i6) | 0;
26765 0 : _subexpr(i2, i3, 0) | 0;
26766 0 : i15 = HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + 8 >> 2] | 0;
26767 0 : _luaK_codeABC(i8, 10, i15, i16, _luaK_exp2RK(i8, i3) | 0) | 0;
26768 0 : HEAP8[i5] = i4;
26769 0 : STACKTOP = i1;
26770 0 : return;
26771 0 : } else {
26772 0 : _error_expected(i2, 61);
26773 0 : }
26774 1 : }
26775 1 : function _lua_newstate(i3, i6) {
26776 1 : i3 = i3 | 0;
26777 1 : i6 = i6 | 0;
26778 1 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0;
26779 1 : i1 = STACKTOP;
26780 1 : STACKTOP = STACKTOP + 32 | 0;
26781 1 : i5 = i1 + 8 | 0;
26782 1 : i4 = i1;
26783 1 : i2 = FUNCTION_TABLE_iiiii[i3 & 3](i6, 0, 8, 400) | 0;
26784 1 : if ((i2 | 0) == 0) {
26785 1 : i6 = 0;
26786 1 : STACKTOP = i1;
26787 1 : return i6 | 0;
26788 1 : }
26789 1 : i7 = i2 + 112 | 0;
26790 1 : HEAP32[i2 >> 2] = 0;
26791 1 : HEAP8[i2 + 4 | 0] = 8;
26792 1 : HEAP8[i2 + 172 | 0] = 33;
26793 1 : HEAP8[i2 + 5 | 0] = 1;
26794 1 : HEAP8[i2 + 174 | 0] = 0;
26795 1 : HEAP32[i2 + 12 >> 2] = i7;
26796 1 : HEAP32[i2 + 28 >> 2] = 0;
26797 1 : HEAP32[i2 + 16 >> 2] = 0;
26798 1 : HEAP32[i2 + 32 >> 2] = 0;
26799 1 : HEAP32[i2 + 64 >> 2] = 0;
26800 1 : HEAP16[i2 + 38 >> 1] = 0;
26801 1 : HEAP32[i2 + 52 >> 2] = 0;
26802 1 : HEAP8[i2 + 40 | 0] = 0;
26803 1 : HEAP32[i2 + 44 >> 2] = 0;
26804 1 : HEAP8[i2 + 41 | 0] = 1;
26805 1 : HEAP32[i2 + 48 >> 2] = 0;
26806 1 : HEAP32[i2 + 56 >> 2] = 0;
26807 1 : HEAP16[i2 + 36 >> 1] = 1;
26808 1 : HEAP8[i2 + 6 | 0] = 0;
26809 1 : HEAP32[i2 + 68 >> 2] = 0;
26810 1 : HEAP32[i7 >> 2] = i3;
26811 1 : HEAP32[i2 + 116 >> 2] = i6;
26812 1 : HEAP32[i2 + 284 >> 2] = i2;
26813 1 : i3 = _time(0) | 0;
26814 1 : HEAP32[i4 >> 2] = i3;
26815 1 : HEAP32[i5 >> 2] = i2;
26816 1 : HEAP32[i5 + 4 >> 2] = i4;
26817 1 : HEAP32[i5 + 8 >> 2] = 5192;
26818 1 : HEAP32[i5 + 12 >> 2] = 1;
26819 1 : HEAP32[i2 + 168 >> 2] = _luaS_hash(i5, 16, i3) | 0;
26820 1 : i4 = i2 + 224 | 0;
26821 1 : HEAP32[i2 + 240 >> 2] = i4;
26822 1 : HEAP32[i2 + 244 >> 2] = i4;
26823 1 : HEAP8[i2 + 175 | 0] = 0;
26824 1 : i4 = i2 + 132 | 0;
26825 1 : HEAP32[i2 + 160 >> 2] = 0;
26826 1 : HEAP32[i2 + 256 >> 2] = 0;
26827 1 : HEAP32[i2 + 264 >> 2] = 0;
26828 1 : HEAP32[i2 + 280 >> 2] = 0;
26829 1 : HEAP32[i4 + 0 >> 2] = 0;
26830 1 : HEAP32[i4 + 4 >> 2] = 0;
26831 1 : HEAP32[i4 + 8 >> 2] = 0;
26832 1 : HEAP32[i4 + 12 >> 2] = 0;
26833 1 : HEAP32[i2 + 288 >> 2] = _lua_version(0) | 0;
26834 1 : HEAP8[i2 + 173 | 0] = 5;
26835 1 : i4 = i2 + 120 | 0;
26836 1 : i5 = i2 + 180 | 0;
26837 1 : i3 = i5 + 40 | 0;
26838 1 : do {
26839 1 : HEAP32[i5 >> 2] = 0;
26840 1 : i5 = i5 + 4 | 0;
26841 1 : } while ((i5 | 0) < (i3 | 0));
26842 1 : HEAP32[i4 >> 2] = 400;
26843 1 : HEAP32[i2 + 124 >> 2] = 0;
26844 1 : HEAP32[i2 + 268 >> 2] = 200;
26845 1 : HEAP32[i2 + 272 >> 2] = 200;
26846 1 : HEAP32[i2 + 276 >> 2] = 200;
26847 1 : i5 = i2 + 364 | 0;
26848 1 : i3 = i5 + 36 | 0;
26849 1 : do {
26850 1 : HEAP32[i5 >> 2] = 0;
26851 1 : i5 = i5 + 4 | 0;
26852 1 : } while ((i5 | 0) < (i3 | 0));
26853 1 : if ((_luaD_rawrunprotected(i2, 8, 0) | 0) == 0) {
26854 1 : i7 = i2;
26855 1 : STACKTOP = i1;
26856 1 : return i7 | 0;
26857 1 : }
26858 1 : _close_state(i2);
26859 1 : i7 = 0;
26860 1 : STACKTOP = i1;
26861 1 : return i7 | 0;
26862 1 : }
26863 1 : function _luaU_undump(i1, i7, i8, i9) {
26864 0 : i1 = i1 | 0;
26865 0 : i7 = i7 | 0;
26866 0 : i8 = i8 | 0;
26867 0 : i9 = i9 | 0;
26868 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
26869 0 : i2 = STACKTOP;
26870 0 : STACKTOP = STACKTOP + 64 | 0;
26871 0 : i4 = i2 + 16 | 0;
26872 0 : i5 = i2 + 34 | 0;
26873 0 : i3 = i2;
26874 0 : i6 = HEAP8[i9] | 0;
26875 0 : if (i6 << 24 >> 24 == 27) {
26876 0 : HEAP32[i3 + 12 >> 2] = 8800;
26877 0 : } else if (i6 << 24 >> 24 == 61 | i6 << 24 >> 24 == 64) {
26878 0 : HEAP32[i3 + 12 >> 2] = i9 + 1;
26879 0 : } else {
26880 0 : HEAP32[i3 + 12 >> 2] = i9;
26881 0 : }
26882 0 : HEAP32[i3 >> 2] = i1;
26883 0 : HEAP32[i3 + 4 >> 2] = i7;
26884 0 : HEAP32[i3 + 8 >> 2] = i8;
26885 0 : HEAP32[i4 >> 2] = 1635077147;
26886 0 : HEAP8[i4 + 4 | 0] = 82;
26887 0 : HEAP8[i4 + 5 | 0] = 0;
26888 0 : HEAP8[i4 + 6 | 0] = 1;
26889 0 : HEAP8[i4 + 7 | 0] = 4;
26890 0 : HEAP8[i4 + 8 | 0] = 4;
26891 0 : HEAP8[i4 + 9 | 0] = 4;
26892 0 : HEAP8[i4 + 10 | 0] = 8;
26893 0 : i9 = i4 + 12 | 0;
26894 0 : HEAP8[i4 + 11 | 0] = 0;
26895 0 : HEAP8[i9 + 0 | 0] = HEAP8[8816 | 0] | 0;
26896 0 : HEAP8[i9 + 1 | 0] = HEAP8[8817 | 0] | 0;
26897 0 : HEAP8[i9 + 2 | 0] = HEAP8[8818 | 0] | 0;
26898 0 : HEAP8[i9 + 3 | 0] = HEAP8[8819 | 0] | 0;
26899 0 : HEAP8[i9 + 4 | 0] = HEAP8[8820 | 0] | 0;
26900 0 : HEAP8[i9 + 5 | 0] = HEAP8[8821 | 0] | 0;
26901 0 : HEAP8[i5] = 27;
26902 0 : if ((_luaZ_read(i7, i5 + 1 | 0, 17) | 0) != 0) {
26903 0 : _error(i3, 8824);
26904 0 : }
26905 0 : if ((_memcmp(i4, i5, 18) | 0) == 0) {
26906 0 : i4 = _luaF_newLclosure(i1, 1) | 0;
26907 0 : i5 = i1 + 8 | 0;
26908 0 : i9 = HEAP32[i5 >> 2] | 0;
26909 0 : HEAP32[i9 >> 2] = i4;
26910 0 : HEAP32[i9 + 8 >> 2] = 70;
26911 0 : i9 = (HEAP32[i5 >> 2] | 0) + 16 | 0;
26912 0 : HEAP32[i5 >> 2] = i9;
26913 0 : if (((HEAP32[i1 + 24 >> 2] | 0) - i9 | 0) < 16) {
26914 0 : _luaD_growstack(i1, 0);
26915 0 : }
26916 0 : i9 = _luaF_newproto(i1) | 0;
26917 0 : i6 = i4 + 12 | 0;
26918 0 : HEAP32[i6 >> 2] = i9;
26919 0 : _LoadFunction(i3, i9);
26920 0 : i6 = HEAP32[i6 >> 2] | 0;
26921 0 : i3 = HEAP32[i6 + 40 >> 2] | 0;
26922 0 : if ((i3 | 0) == 1) {
26923 0 : i9 = i4;
26924 0 : STACKTOP = i2;
26925 0 : return i9 | 0;
26926 0 : }
26927 0 : i9 = _luaF_newLclosure(i1, i3) | 0;
26928 0 : HEAP32[i9 + 12 >> 2] = i6;
26929 0 : i8 = HEAP32[i5 >> 2] | 0;
26930 0 : HEAP32[i8 + -16 >> 2] = i9;
26931 0 : HEAP32[i8 + -8 >> 2] = 70;
26932 0 : STACKTOP = i2;
26933 0 : return i9 | 0;
26934 0 : }
26935 0 : if ((_memcmp(i4, i5, 4) | 0) != 0) {
26936 0 : _error(i3, 8888);
26937 0 : }
26938 0 : if ((_memcmp(i4, i5, 6) | 0) != 0) {
26939 0 : _error(i3, 8896);
26940 0 : }
26941 0 : if ((_memcmp(i4, i5, 12) | 0) == 0) {
26942 0 : _error(i3, 8872);
26943 0 : } else {
26944 0 : _error(i3, 8920);
26945 0 : }
26946 0 : return 0;
26947 1 : }
26948 1 : function _lua_compare(i2, i7, i5, i3) {
26949 0 : i2 = i2 | 0;
26950 0 : i7 = i7 | 0;
26951 0 : i5 = i5 | 0;
26952 0 : i3 = i3 | 0;
26953 0 : var i1 = 0, i4 = 0, i6 = 0, i8 = 0;
26954 0 : i1 = STACKTOP;
26955 0 : i4 = HEAP32[i2 + 16 >> 2] | 0;
26956 0 : do {
26957 0 : if ((i7 | 0) <= 0) {
26958 0 : if (!((i7 | 0) < -1000999)) {
26959 0 : i6 = (HEAP32[i2 + 8 >> 2] | 0) + (i7 << 4) | 0;
26960 0 : break;
26961 0 : }
26962 0 : if ((i7 | 0) == -1001e3) {
26963 0 : i6 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
26964 0 : break;
26965 0 : }
26966 0 : i7 = -1001e3 - i7 | 0;
26967 0 : i8 = HEAP32[i4 >> 2] | 0;
26968 0 : if ((HEAP32[i8 + 8 >> 2] | 0) != 22 ? (i6 = HEAP32[i8 >> 2] | 0, (i7 | 0) <= (HEAPU8[i6 + 6 | 0] | 0 | 0)) : 0) {
26969 0 : i6 = i6 + (i7 + -1 << 4) + 16 | 0;
26970 0 : } else {
26971 0 : i6 = 5192;
26972 0 : }
26973 0 : } else {
26974 0 : i6 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
26975 0 : i6 = i6 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i6 : 5192;
26976 0 : }
26977 0 : } while (0);
26978 0 : do {
26979 0 : if ((i5 | 0) <= 0) {
26980 0 : if (!((i5 | 0) < -1000999)) {
26981 0 : i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
26982 0 : break;
26983 0 : }
26984 0 : if ((i5 | 0) == -1001e3) {
26985 0 : i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
26986 0 : break;
26987 0 : }
26988 0 : i5 = -1001e3 - i5 | 0;
26989 0 : i4 = HEAP32[i4 >> 2] | 0;
26990 0 : if ((HEAP32[i4 + 8 >> 2] | 0) == 22) {
26991 0 : i8 = 0;
26992 0 : STACKTOP = i1;
26993 0 : return i8 | 0;
26994 0 : }
26995 0 : i4 = HEAP32[i4 >> 2] | 0;
26996 0 : if ((i5 | 0) > (HEAPU8[i4 + 6 | 0] | 0 | 0)) {
26997 0 : i8 = 0;
26998 0 : STACKTOP = i1;
26999 0 : return i8 | 0;
27000 0 : } else {
27001 0 : i4 = i4 + (i5 + -1 << 4) + 16 | 0;
27002 0 : break;
27003 0 : }
27004 0 : } else {
27005 0 : i4 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
27006 0 : i4 = i4 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
27007 0 : }
27008 0 : } while (0);
27009 0 : if ((i6 | 0) == 5192 | (i4 | 0) == 5192) {
27010 0 : i8 = 0;
27011 0 : STACKTOP = i1;
27012 0 : return i8 | 0;
27013 0 : }
27014 0 : if ((i3 | 0) == 1) {
27015 0 : i8 = _luaV_lessthan(i2, i6, i4) | 0;
27016 0 : STACKTOP = i1;
27017 0 : return i8 | 0;
27018 0 : } else if ((i3 | 0) == 2) {
27019 0 : i8 = _luaV_lessequal(i2, i6, i4) | 0;
27020 0 : STACKTOP = i1;
27021 0 : return i8 | 0;
27022 0 : } else if ((i3 | 0) == 0) {
27023 0 : if ((HEAP32[i6 + 8 >> 2] | 0) == (HEAP32[i4 + 8 >> 2] | 0)) {
27024 0 : i2 = (_luaV_equalobj_(i2, i6, i4) | 0) != 0;
27025 0 : } else {
27026 0 : i2 = 0;
27027 0 : }
27028 0 : i8 = i2 & 1;
27029 0 : STACKTOP = i1;
27030 0 : return i8 | 0;
27031 0 : } else {
27032 0 : i8 = 0;
27033 0 : STACKTOP = i1;
27034 0 : return i8 | 0;
27035 0 : }
27036 0 : return 0;
27037 1 : }
27038 1 : function _lexerror(i7, i3, i8) {
27039 0 : i7 = i7 | 0;
27040 0 : i3 = i3 | 0;
27041 0 : i8 = i8 | 0;
27042 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
27043 0 : i12 = STACKTOP;
27044 0 : STACKTOP = STACKTOP + 80 | 0;
27045 0 : i2 = i12;
27046 0 : i12 = i12 + 12 | 0;
27047 0 : _luaO_chunkid(i12, (HEAP32[i7 + 68 >> 2] | 0) + 16 | 0, 60);
27048 0 : i1 = i7 + 52 | 0;
27049 0 : i4 = HEAP32[i1 >> 2] | 0;
27050 0 : i13 = HEAP32[i7 + 4 >> 2] | 0;
27051 0 : HEAP32[i2 >> 2] = i12;
27052 0 : HEAP32[i2 + 4 >> 2] = i13;
27053 0 : HEAP32[i2 + 8 >> 2] = i3;
27054 0 : i4 = _luaO_pushfstring(i4, 12592, i2) | 0;
27055 0 : if ((i8 | 0) == 0) {
27056 0 : i13 = HEAP32[i1 >> 2] | 0;
27057 0 : _luaD_throw(i13, 3);
27058 0 : }
27059 0 : i3 = HEAP32[i1 >> 2] | 0;
27060 0 : do {
27061 0 : if (!((i8 + -287 | 0) >>> 0 < 3)) {
27062 0 : if ((i8 | 0) >= 257) {
27063 0 : i5 = HEAP32[12096 + (i8 + -257 << 2) >> 2] | 0;
27064 0 : if ((i8 | 0) >= 286) {
27065 0 : break;
27066 0 : }
27067 0 : HEAP32[i2 >> 2] = i5;
27068 0 : i5 = _luaO_pushfstring(i3, 12256, i2) | 0;
27069 0 : break;
27070 0 : }
27071 0 : if ((HEAP8[i8 + 10913 | 0] & 4) == 0) {
27072 0 : HEAP32[i2 >> 2] = i8;
27073 0 : i5 = _luaO_pushfstring(i3, 12240, i2) | 0;
27074 0 : break;
27075 0 : } else {
27076 0 : HEAP32[i2 >> 2] = i8;
27077 0 : i5 = _luaO_pushfstring(i3, 12232, i2) | 0;
27078 0 : break;
27079 0 : }
27080 0 : } else {
27081 0 : i11 = i7 + 60 | 0;
27082 0 : i12 = HEAP32[i11 >> 2] | 0;
27083 0 : i10 = i12 + 4 | 0;
27084 0 : i13 = HEAP32[i10 >> 2] | 0;
27085 0 : i8 = i12 + 8 | 0;
27086 0 : i9 = HEAP32[i8 >> 2] | 0;
27087 0 : do {
27088 0 : if ((i13 + 1 | 0) >>> 0 > i9 >>> 0) {
27089 0 : if (i9 >>> 0 > 2147483645) {
27090 0 : _lexerror(i7, 12368, 0);
27091 0 : }
27092 0 : i7 = i9 << 1;
27093 0 : if ((i7 | 0) == -2) {
27094 0 : _luaM_toobig(i3);
27095 0 : } else {
27096 0 : i6 = _luaM_realloc_(i3, HEAP32[i12 >> 2] | 0, i9, i7) | 0;
27097 0 : HEAP32[i12 >> 2] = i6;
27098 0 : HEAP32[i8 >> 2] = i7;
27099 0 : i5 = HEAP32[i10 >> 2] | 0;
27100 0 : break;
27101 0 : }
27102 0 : } else {
27103 0 : i5 = i13;
27104 0 : i6 = HEAP32[i12 >> 2] | 0;
27105 0 : }
27106 0 : } while (0);
27107 0 : HEAP32[i10 >> 2] = i5 + 1;
27108 0 : HEAP8[i6 + i5 | 0] = 0;
27109 0 : i5 = HEAP32[i1 >> 2] | 0;
27110 0 : HEAP32[i2 >> 2] = HEAP32[HEAP32[i11 >> 2] >> 2];
27111 0 : i5 = _luaO_pushfstring(i5, 12256, i2) | 0;
27112 0 : }
27113 0 : } while (0);
27114 0 : HEAP32[i2 >> 2] = i4;
27115 0 : HEAP32[i2 + 4 >> 2] = i5;
27116 0 : _luaO_pushfstring(i3, 12608, i2) | 0;
27117 0 : i13 = HEAP32[i1 >> 2] | 0;
27118 0 : _luaD_throw(i13, 3);
27119 1 : }
27120 1 : function _luaV_objlen(i2, i5, i1) {
27121 1 : i2 = i2 | 0;
27122 1 : i5 = i5 | 0;
27123 1 : i1 = i1 | 0;
27124 1 : var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0;
27125 1 : i3 = STACKTOP;
27126 1 : i4 = i1 + 8 | 0;
27127 1 : i8 = HEAP32[i4 >> 2] & 15;
27128 1 : do {
27129 1 : if ((i8 | 0) == 5) {
27130 1 : i7 = HEAP32[i1 >> 2] | 0;
27131 1 : i8 = HEAP32[i7 + 8 >> 2] | 0;
27132 1 : if (((i8 | 0) != 0 ? (HEAP8[i8 + 6 | 0] & 16) == 0 : 0) ? (i6 = _luaT_gettm(i8, 4, HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 200 >> 2] | 0) | 0, (i6 | 0) != 0) : 0) {
27133 1 : i7 = i6;
27134 1 : break;
27135 1 : }
27136 1 : HEAPF64[i5 >> 3] = +(_luaH_getn(i7) | 0);
27137 1 : HEAP32[i5 + 8 >> 2] = 3;
27138 1 : STACKTOP = i3;
27139 1 : return;
27140 1 : } else if ((i8 | 0) != 4) {
27141 1 : i6 = _luaT_gettmbyobj(i2, i1, 4) | 0;
27142 1 : if ((HEAP32[i6 + 8 >> 2] | 0) == 0) {
27143 1 : _luaG_typeerror(i2, i1, 9024);
27144 1 : } else {
27145 1 : i7 = i6;
27146 1 : }
27147 1 : } else {
27148 1 : HEAPF64[i5 >> 3] = +((HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) >>> 0);
27149 1 : HEAP32[i5 + 8 >> 2] = 3;
27150 1 : STACKTOP = i3;
27151 1 : return;
27152 1 : }
27153 1 : } while (0);
27154 1 : i6 = i2 + 28 | 0;
27155 1 : i8 = i5 - (HEAP32[i6 >> 2] | 0) | 0;
27156 1 : i5 = i2 + 8 | 0;
27157 1 : i11 = HEAP32[i5 >> 2] | 0;
27158 1 : HEAP32[i5 >> 2] = i11 + 16;
27159 1 : i12 = i7;
27160 1 : i10 = HEAP32[i12 + 4 >> 2] | 0;
27161 1 : i9 = i11;
27162 1 : HEAP32[i9 >> 2] = HEAP32[i12 >> 2];
27163 1 : HEAP32[i9 + 4 >> 2] = i10;
27164 1 : HEAP32[i11 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
27165 1 : i7 = HEAP32[i5 >> 2] | 0;
27166 1 : HEAP32[i5 >> 2] = i7 + 16;
27167 1 : i11 = i1;
27168 1 : i9 = HEAP32[i11 + 4 >> 2] | 0;
27169 1 : i10 = i7;
27170 1 : HEAP32[i10 >> 2] = HEAP32[i11 >> 2];
27171 1 : HEAP32[i10 + 4 >> 2] = i9;
27172 1 : HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
27173 1 : i7 = HEAP32[i5 >> 2] | 0;
27174 1 : HEAP32[i5 >> 2] = i7 + 16;
27175 1 : i10 = i1;
27176 1 : i9 = HEAP32[i10 + 4 >> 2] | 0;
27177 1 : i1 = i7;
27178 1 : HEAP32[i1 >> 2] = HEAP32[i10 >> 2];
27179 1 : HEAP32[i1 + 4 >> 2] = i9;
27180 1 : HEAP32[i7 + 8 >> 2] = HEAP32[i4 >> 2];
27181 1 : _luaD_call(i2, (HEAP32[i5 >> 2] | 0) + -48 | 0, 1, HEAP8[(HEAP32[i2 + 16 >> 2] | 0) + 18 | 0] & 1);
27182 1 : i7 = HEAP32[i6 >> 2] | 0;
27183 1 : i6 = HEAP32[i5 >> 2] | 0;
27184 1 : i2 = i6 + -16 | 0;
27185 1 : HEAP32[i5 >> 2] = i2;
27186 1 : i4 = HEAP32[i2 + 4 >> 2] | 0;
27187 1 : i5 = i7 + i8 | 0;
27188 1 : HEAP32[i5 >> 2] = HEAP32[i2 >> 2];
27189 1 : HEAP32[i5 + 4 >> 2] = i4;
27190 1 : HEAP32[i7 + (i8 + 8) >> 2] = HEAP32[i6 + -8 >> 2];
27191 1 : STACKTOP = i3;
27192 1 : return;
27193 1 : }
27194 1 : function _get_equalTM(i6, i5, i4) {
27195 0 : i6 = i6 | 0;
27196 0 : i5 = i5 | 0;
27197 0 : i4 = i4 | 0;
27198 0 : var i1 = 0, i2 = 0, i3 = 0, i7 = 0;
27199 0 : i1 = STACKTOP;
27200 0 : L1 : do {
27201 0 : if (((i5 | 0) != 0 ? (HEAP8[i5 + 6 | 0] & 32) == 0 : 0) ? (i7 = i6 + 12 | 0, i2 = _luaT_gettm(i5, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i2 | 0) != 0) : 0) {
27202 0 : if ((i5 | 0) != (i4 | 0)) {
27203 0 : if (((i4 | 0) != 0 ? (HEAP8[i4 + 6 | 0] & 32) == 0 : 0) ? (i3 = _luaT_gettm(i4, 5, HEAP32[(HEAP32[i7 >> 2] | 0) + 204 >> 2] | 0) | 0, (i3 | 0) != 0) : 0) {
27204 0 : i4 = HEAP32[i2 + 8 >> 2] | 0;
27205 0 : L9 : do {
27206 0 : if ((i4 | 0) == (HEAP32[i3 + 8 >> 2] | 0)) {
27207 0 : switch (i4 & 63 | 0) {
27208 0 : case 3:
27209 0 : {
27210 0 : i3 = +HEAPF64[i2 >> 3] == +HEAPF64[i3 >> 3] | 0;
27211 0 : break;
27212 0 : }
27213 0 : case 22:
27214 0 : {
27215 0 : i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
27216 0 : break;
27217 0 : }
27218 0 : case 5:
27219 0 : {
27220 0 : if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
27221 0 : break L1;
27222 0 : } else {
27223 0 : break L9;
27224 0 : }
27225 0 : }
27226 0 : case 1:
27227 0 : {
27228 0 : i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
27229 0 : break;
27230 0 : }
27231 0 : case 4:
27232 0 : {
27233 0 : i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
27234 0 : break;
27235 0 : }
27236 0 : case 0:
27237 0 : {
27238 0 : break L1;
27239 0 : }
27240 0 : case 7:
27241 0 : {
27242 0 : if ((HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0)) {
27243 0 : break L1;
27244 0 : } else {
27245 0 : break L9;
27246 0 : }
27247 0 : }
27248 0 : case 2:
27249 0 : {
27250 0 : i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
27251 0 : break;
27252 0 : }
27253 0 : case 20:
27254 0 : {
27255 0 : i3 = _luaS_eqlngstr(HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] | 0) | 0;
27256 0 : break;
27257 0 : }
27258 0 : default:
27259 0 : {
27260 0 : i3 = (HEAP32[i2 >> 2] | 0) == (HEAP32[i3 >> 2] | 0) | 0;
27261 0 : }
27262 0 : }
27263 0 : if ((i3 | 0) != 0) {
27264 0 : break L1;
27265 0 : }
27266 0 : }
27267 0 : } while (0);
27268 0 : i2 = 0;
27269 0 : } else {
27270 0 : i2 = 0;
27271 0 : }
27272 0 : }
27273 0 : } else {
27274 0 : i2 = 0;
27275 0 : }
27276 0 : } while (0);
27277 0 : STACKTOP = i1;
27278 0 : return i2 | 0;
27279 1 : }
27280 464 : function _luaS_newlstr(i2, i4, i3) {
27281 464 : i2 = i2 | 0;
27282 464 : i4 = i4 | 0;
27283 464 : i3 = i3 | 0;
27284 464 : var i1 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
27285 464 : i1 = STACKTOP;
27286 464 : if (!(i3 >>> 0 < 41)) {
27287 464 : if ((i3 + 1 | 0) >>> 0 > 4294967277) {
27288 464 : _luaM_toobig(i2);
27289 464 : }
27290 464 : i10 = HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 56 >> 2] | 0;
27291 464 : i11 = _luaC_newobj(i2, 20, i3 + 17 | 0, 0, 0) | 0;
27292 464 : HEAP32[i11 + 12 >> 2] = i3;
27293 464 : HEAP32[i11 + 8 >> 2] = i10;
27294 464 : HEAP8[i11 + 6 | 0] = 0;
27295 464 : i10 = i11 + 16 | 0;
27296 464 : _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
27297 464 : HEAP8[i10 + i3 | 0] = 0;
27298 464 : STACKTOP = i1;
27299 464 : return i11 | 0;
27300 464 : }
27301 464 : i5 = HEAP32[i2 + 12 >> 2] | 0;
27302 464 : i6 = HEAP32[i5 + 56 >> 2] ^ i3;
27303 464 : i7 = (i3 >>> 5) + 1 | 0;
27304 464 : if (!(i7 >>> 0 > i3 >>> 0)) {
27305 464 : i8 = i3;
27306 464 : do {
27307 464 : i6 = (i6 << 5) + (i6 >>> 2) + (HEAPU8[i4 + (i8 + -1) | 0] | 0) ^ i6;
27308 464 : i8 = i8 - i7 | 0;
27309 464 : } while (!(i8 >>> 0 < i7 >>> 0));
27310 464 : }
27311 464 : i10 = i5 + 32 | 0;
27312 464 : i9 = HEAP32[i10 >> 2] | 0;
27313 464 : i7 = i5 + 24 | 0;
27314 464 : i8 = HEAP32[i7 >> 2] | 0;
27315 464 : i11 = HEAP32[i8 + ((i9 + -1 & i6) << 2) >> 2] | 0;
27316 464 : L12 : do {
27317 464 : if ((i11 | 0) != 0) {
27318 464 : while (1) {
27319 464 : if (((i6 | 0) == (HEAP32[i11 + 8 >> 2] | 0) ? (HEAP32[i11 + 12 >> 2] | 0) == (i3 | 0) : 0) ? (_memcmp(i4, i11 + 16 | 0, i3) | 0) == 0 : 0) {
27320 464 : break;
27321 464 : }
27322 464 : i11 = HEAP32[i11 >> 2] | 0;
27323 464 : if ((i11 | 0) == 0) {
27324 464 : break L12;
27325 464 : }
27326 464 : }
27327 464 : i2 = i11 + 5 | 0;
27328 464 : i3 = (HEAPU8[i2] | 0) ^ 3;
27329 464 : if ((((HEAPU8[i5 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
27330 464 : STACKTOP = i1;
27331 464 : return i11 | 0;
27332 464 : }
27333 464 : HEAP8[i2] = i3;
27334 464 : STACKTOP = i1;
27335 464 : return i11 | 0;
27336 464 : }
27337 464 : } while (0);
27338 464 : i5 = i5 + 28 | 0;
27339 464 : if ((HEAP32[i5 >> 2] | 0) >>> 0 >= i9 >>> 0 & (i9 | 0) < 1073741823) {
27340 464 : _luaS_resize(i2, i9 << 1);
27341 464 : i9 = HEAP32[i10 >> 2] | 0;
27342 464 : i8 = HEAP32[i7 >> 2] | 0;
27343 464 : }
27344 464 : i11 = _luaC_newobj(i2, 4, i3 + 17 | 0, i8 + ((i9 + -1 & i6) << 2) | 0, 0) | 0;
27345 464 : HEAP32[i11 + 12 >> 2] = i3;
27346 464 : HEAP32[i11 + 8 >> 2] = i6;
27347 464 : HEAP8[i11 + 6 | 0] = 0;
27348 464 : i10 = i11 + 16 | 0;
27349 464 : _memcpy(i10 | 0, i4 | 0, i3 | 0) | 0;
27350 464 : HEAP8[i10 + i3 | 0] = 0;
27351 464 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 1;
27352 464 : STACKTOP = i1;
27353 464 : return i11 | 0;
27354 464 : }
27355 2 : function _lua_pcallk(i3, i7, i2, i9, i6, i5) {
27356 2 : i3 = i3 | 0;
27357 2 : i7 = i7 | 0;
27358 2 : i2 = i2 | 0;
27359 2 : i9 = i9 | 0;
27360 2 : i6 = i6 | 0;
27361 2 : i5 = i5 | 0;
27362 2 : var i1 = 0, i4 = 0, i8 = 0, i10 = 0, i11 = 0;
27363 2 : i1 = STACKTOP;
27364 2 : STACKTOP = STACKTOP + 16 | 0;
27365 2 : i4 = i1;
27366 2 : if ((i9 | 0) == 0) {
27367 2 : i9 = 0;
27368 2 : } else {
27369 2 : i10 = HEAP32[i3 + 16 >> 2] | 0;
27370 2 : do {
27371 2 : if ((i9 | 0) <= 0) {
27372 2 : if (!((i9 | 0) < -1000999)) {
27373 2 : i8 = (HEAP32[i3 + 8 >> 2] | 0) + (i9 << 4) | 0;
27374 2 : break;
27375 2 : }
27376 2 : if ((i9 | 0) == -1001e3) {
27377 2 : i8 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
27378 2 : break;
27379 2 : }
27380 2 : i9 = -1001e3 - i9 | 0;
27381 2 : i10 = HEAP32[i10 >> 2] | 0;
27382 2 : if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0)) : 0) {
27383 2 : i8 = i8 + (i9 + -1 << 4) + 16 | 0;
27384 2 : } else {
27385 2 : i8 = 5192;
27386 2 : }
27387 2 : } else {
27388 2 : i8 = (HEAP32[i10 >> 2] | 0) + (i9 << 4) | 0;
27389 2 : i8 = i8 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
27390 2 : }
27391 2 : } while (0);
27392 2 : i9 = i8 - (HEAP32[i3 + 28 >> 2] | 0) | 0;
27393 2 : }
27394 2 : i8 = i3 + 8 | 0;
27395 2 : i7 = (HEAP32[i8 >> 2] | 0) + (~i7 << 4) | 0;
27396 2 : HEAP32[i4 >> 2] = i7;
27397 2 : if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
27398 2 : i11 = HEAP32[i3 + 16 >> 2] | 0;
27399 2 : HEAP32[i11 + 28 >> 2] = i5;
27400 2 : HEAP32[i11 + 24 >> 2] = i6;
27401 2 : HEAP32[i11 + 20 >> 2] = (HEAP32[i4 >> 2] | 0) - (HEAP32[i3 + 28 >> 2] | 0);
27402 2 : HEAP8[i11 + 36 | 0] = HEAP8[i3 + 41 | 0] | 0;
27403 2 : i10 = i3 + 68 | 0;
27404 2 : i7 = i11 + 32 | 0;
27405 2 : HEAP32[i7 >> 2] = HEAP32[i10 >> 2];
27406 2 : HEAP32[i10 >> 2] = i9;
27407 2 : i9 = i11 + 18 | 0;
27408 2 : HEAP8[i9] = HEAPU8[i9] | 16;
27409 2 : _luaD_call(i3, HEAP32[i4 >> 2] | 0, i2, 1);
27410 2 : HEAP8[i9] = HEAP8[i9] & 239;
27411 2 : HEAP32[i10 >> 2] = HEAP32[i7 >> 2];
27412 2 : i4 = 0;
27413 2 : } else {
27414 2 : HEAP32[i4 + 4 >> 2] = i2;
27415 2 : i4 = _luaD_pcall(i3, 3, i4, i7 - (HEAP32[i3 + 28 >> 2] | 0) | 0, i9) | 0;
27416 2 : }
27417 2 : if (!((i2 | 0) == -1)) {
27418 2 : STACKTOP = i1;
27419 2 : return i4 | 0;
27420 2 : }
27421 2 : i2 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
27422 2 : i3 = HEAP32[i8 >> 2] | 0;
27423 2 : if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i3 >>> 0)) {
27424 2 : STACKTOP = i1;
27425 2 : return i4 | 0;
27426 2 : }
27427 2 : HEAP32[i2 >> 2] = i3;
27428 2 : STACKTOP = i1;
27429 2 : return i4 | 0;
27430 2 : }
27431 1 : function _lua_getupvalue(i1, i6, i3) {
27432 0 : i1 = i1 | 0;
27433 0 : i6 = i6 | 0;
27434 0 : i3 = i3 | 0;
27435 0 : var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
27436 0 : i2 = STACKTOP;
27437 0 : i5 = HEAP32[i1 + 16 >> 2] | 0;
27438 0 : do {
27439 0 : if ((i6 | 0) <= 0) {
27440 0 : if (!((i6 | 0) < -1000999)) {
27441 0 : i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
27442 0 : break;
27443 0 : }
27444 0 : if ((i6 | 0) == -1001e3) {
27445 0 : i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
27446 0 : break;
27447 0 : }
27448 0 : i6 = -1001e3 - i6 | 0;
27449 0 : i5 = HEAP32[i5 >> 2] | 0;
27450 0 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
27451 0 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
27452 0 : } else {
27453 0 : i4 = 5192;
27454 0 : }
27455 0 : } else {
27456 0 : i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
27457 0 : i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
27458 0 : }
27459 0 : } while (0);
27460 0 : i5 = HEAP32[i4 + 8 >> 2] & 63;
27461 0 : do {
27462 0 : if ((i5 | 0) == 38) {
27463 0 : i5 = HEAP32[i4 >> 2] | 0;
27464 0 : if ((i3 | 0) <= 0) {
27465 0 : i6 = 0;
27466 0 : STACKTOP = i2;
27467 0 : return i6 | 0;
27468 0 : }
27469 0 : if ((HEAPU8[i5 + 6 | 0] | 0 | 0) < (i3 | 0)) {
27470 0 : i6 = 0;
27471 0 : STACKTOP = i2;
27472 0 : return i6 | 0;
27473 0 : } else {
27474 0 : i4 = 936;
27475 0 : i3 = i5 + (i3 + -1 << 4) + 16 | 0;
27476 0 : break;
27477 0 : }
27478 0 : } else if ((i5 | 0) == 6) {
27479 0 : i5 = HEAP32[i4 >> 2] | 0;
27480 0 : i4 = HEAP32[i5 + 12 >> 2] | 0;
27481 0 : if ((i3 | 0) <= 0) {
27482 0 : i6 = 0;
27483 0 : STACKTOP = i2;
27484 0 : return i6 | 0;
27485 0 : }
27486 0 : if ((HEAP32[i4 + 40 >> 2] | 0) < (i3 | 0)) {
27487 0 : i6 = 0;
27488 0 : STACKTOP = i2;
27489 0 : return i6 | 0;
27490 0 : }
27491 0 : i6 = i3 + -1 | 0;
27492 0 : i3 = HEAP32[(HEAP32[i5 + 16 + (i6 << 2) >> 2] | 0) + 8 >> 2] | 0;
27493 0 : i4 = HEAP32[(HEAP32[i4 + 28 >> 2] | 0) + (i6 << 3) >> 2] | 0;
27494 0 : if ((i4 | 0) == 0) {
27495 0 : i4 = 936;
27496 0 : } else {
27497 0 : i4 = i4 + 16 | 0;
27498 0 : }
27499 0 : } else {
27500 0 : i6 = 0;
27501 0 : STACKTOP = i2;
27502 0 : return i6 | 0;
27503 0 : }
27504 0 : } while (0);
27505 0 : i6 = i1 + 8 | 0;
27506 0 : i5 = HEAP32[i6 >> 2] | 0;
27507 0 : i8 = i3;
27508 0 : i7 = HEAP32[i8 + 4 >> 2] | 0;
27509 0 : i1 = i5;
27510 0 : HEAP32[i1 >> 2] = HEAP32[i8 >> 2];
27511 0 : HEAP32[i1 + 4 >> 2] = i7;
27512 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
27513 0 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
27514 0 : i6 = i4;
27515 0 : STACKTOP = i2;
27516 0 : return i6 | 0;
27517 1 : }
27518 1 : function _lua_copy(i1, i8, i4) {
27519 0 : i1 = i1 | 0;
27520 0 : i8 = i8 | 0;
27521 0 : i4 = i4 | 0;
27522 0 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0;
27523 0 : i2 = STACKTOP;
27524 0 : i3 = i1 + 16 | 0;
27525 0 : i6 = HEAP32[i3 >> 2] | 0;
27526 0 : do {
27527 0 : if ((i8 | 0) <= 0) {
27528 0 : if (!((i8 | 0) < -1000999)) {
27529 0 : i7 = (HEAP32[i1 + 8 >> 2] | 0) + (i8 << 4) | 0;
27530 0 : break;
27531 0 : }
27532 0 : if ((i8 | 0) == -1001e3) {
27533 0 : i7 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
27534 0 : break;
27535 0 : }
27536 0 : i8 = -1001e3 - i8 | 0;
27537 0 : i9 = HEAP32[i6 >> 2] | 0;
27538 0 : if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i7 = HEAP32[i9 >> 2] | 0, (i8 | 0) <= (HEAPU8[i7 + 6 | 0] | 0 | 0)) : 0) {
27539 0 : i7 = i7 + (i8 + -1 << 4) + 16 | 0;
27540 0 : } else {
27541 0 : i7 = 5192;
27542 0 : }
27543 0 : } else {
27544 0 : i7 = (HEAP32[i6 >> 2] | 0) + (i8 << 4) | 0;
27545 0 : i7 = i7 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i7 : 5192;
27546 0 : }
27547 0 : } while (0);
27548 0 : do {
27549 0 : if ((i4 | 0) <= 0) {
27550 0 : if (!((i4 | 0) < -1000999)) {
27551 0 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
27552 0 : break;
27553 0 : }
27554 0 : if ((i4 | 0) == -1001e3) {
27555 0 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
27556 0 : break;
27557 0 : }
27558 0 : i8 = -1001e3 - i4 | 0;
27559 0 : i6 = HEAP32[i6 >> 2] | 0;
27560 0 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i8 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
27561 0 : i5 = i5 + (i8 + -1 << 4) + 16 | 0;
27562 0 : } else {
27563 0 : i5 = 5192;
27564 0 : }
27565 0 : } else {
27566 0 : i5 = (HEAP32[i6 >> 2] | 0) + (i4 << 4) | 0;
27567 0 : i5 = i5 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
27568 0 : }
27569 0 : } while (0);
27570 0 : i8 = i7;
27571 0 : i9 = HEAP32[i8 + 4 >> 2] | 0;
27572 0 : i6 = i5;
27573 0 : HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
27574 0 : HEAP32[i6 + 4 >> 2] = i9;
27575 0 : i6 = i7 + 8 | 0;
27576 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i6 >> 2];
27577 0 : if (!((i4 | 0) < -1001e3)) {
27578 0 : STACKTOP = i2;
27579 0 : return;
27580 0 : }
27581 0 : if ((HEAP32[i6 >> 2] & 64 | 0) == 0) {
27582 0 : STACKTOP = i2;
27583 0 : return;
27584 0 : }
27585 0 : i4 = HEAP32[i7 >> 2] | 0;
27586 0 : if ((HEAP8[i4 + 5 | 0] & 3) == 0) {
27587 0 : STACKTOP = i2;
27588 0 : return;
27589 0 : }
27590 0 : i3 = HEAP32[HEAP32[HEAP32[i3 >> 2] >> 2] >> 2] | 0;
27591 0 : if ((HEAP8[i3 + 5 | 0] & 4) == 0) {
27592 0 : STACKTOP = i2;
27593 0 : return;
27594 0 : }
27595 0 : _luaC_barrier_(i1, i3, i4);
27596 0 : STACKTOP = i2;
27597 0 : return;
27598 1 : }
27599 11 : function _lua_tolstring(i4, i5, i1) {
27600 11 : i4 = i4 | 0;
27601 11 : i5 = i5 | 0;
27602 11 : i1 = i1 | 0;
27603 11 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
27604 11 : i2 = STACKTOP;
27605 11 : i7 = i4 + 16 | 0;
27606 11 : i10 = HEAP32[i7 >> 2] | 0;
27607 11 : i6 = (i5 | 0) > 0;
27608 11 : do {
27609 11 : if (!i6) {
27610 11 : if (!((i5 | 0) < -1000999)) {
27611 11 : i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
27612 11 : break;
27613 11 : }
27614 11 : if ((i5 | 0) == -1001e3) {
27615 11 : i8 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
27616 11 : break;
27617 11 : }
27618 11 : i9 = -1001e3 - i5 | 0;
27619 11 : i10 = HEAP32[i10 >> 2] | 0;
27620 11 : if ((HEAP32[i10 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i10 >> 2] | 0, (i9 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
27621 11 : i8 = i8 + (i9 + -1 << 4) + 16 | 0;
27622 11 : } else {
27623 11 : i8 = 5192;
27624 11 : }
27625 11 : } else {
27626 11 : i8 = (HEAP32[i10 >> 2] | 0) + (i5 << 4) | 0;
27627 11 : i8 = i8 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
27628 11 : }
27629 11 : } while (0);
27630 11 : do {
27631 11 : if ((HEAP32[i8 + 8 >> 2] & 15 | 0) != 4) {
27632 11 : if ((_luaV_tostring(i4, i8) | 0) == 0) {
27633 11 : if ((i1 | 0) == 0) {
27634 11 : i10 = 0;
27635 11 : STACKTOP = i2;
27636 11 : return i10 | 0;
27637 11 : }
27638 11 : HEAP32[i1 >> 2] = 0;
27639 11 : i10 = 0;
27640 11 : STACKTOP = i2;
27641 11 : return i10 | 0;
27642 11 : }
27643 11 : i8 = i4 + 12 | 0;
27644 11 : if ((HEAP32[(HEAP32[i8 >> 2] | 0) + 12 >> 2] | 0) > 0) {
27645 11 : _luaC_step(i4);
27646 11 : }
27647 11 : i7 = HEAP32[i7 >> 2] | 0;
27648 11 : if (i6) {
27649 11 : i3 = (HEAP32[i7 >> 2] | 0) + (i5 << 4) | 0;
27650 11 : i8 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
27651 11 : break;
27652 11 : }
27653 11 : if (!((i5 | 0) < -1000999)) {
27654 11 : i8 = (HEAP32[i4 + 8 >> 2] | 0) + (i5 << 4) | 0;
27655 11 : break;
27656 11 : }
27657 11 : if ((i5 | 0) == -1001e3) {
27658 11 : i8 = (HEAP32[i8 >> 2] | 0) + 40 | 0;
27659 11 : break;
27660 11 : }
27661 11 : i4 = -1001e3 - i5 | 0;
27662 11 : i5 = HEAP32[i7 >> 2] | 0;
27663 11 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
27664 11 : i8 = i3 + (i4 + -1 << 4) + 16 | 0;
27665 11 : } else {
27666 11 : i8 = 5192;
27667 11 : }
27668 11 : }
27669 11 : } while (0);
27670 11 : i3 = HEAP32[i8 >> 2] | 0;
27671 11 : if ((i1 | 0) != 0) {
27672 11 : HEAP32[i1 >> 2] = HEAP32[i3 + 12 >> 2];
27673 11 : }
27674 11 : i10 = i3 + 16 | 0;
27675 11 : STACKTOP = i2;
27676 11 : return i10 | 0;
27677 11 : }
27678 7 : function _luaD_pcall(i3, i6, i5, i13, i14) {
27679 7 : i3 = i3 | 0;
27680 7 : i6 = i6 | 0;
27681 7 : i5 = i5 | 0;
27682 7 : i13 = i13 | 0;
27683 7 : i14 = i14 | 0;
27684 7 : var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0;
27685 7 : i1 = STACKTOP;
27686 7 : i10 = i3 + 16 | 0;
27687 7 : i11 = HEAP32[i10 >> 2] | 0;
27688 7 : i12 = i3 + 41 | 0;
27689 7 : i7 = HEAP8[i12] | 0;
27690 7 : i9 = i3 + 36 | 0;
27691 7 : i8 = HEAP16[i9 >> 1] | 0;
27692 7 : i4 = i3 + 68 | 0;
27693 7 : i2 = HEAP32[i4 >> 2] | 0;
27694 7 : HEAP32[i4 >> 2] = i14;
27695 7 : i5 = _luaD_rawrunprotected(i3, i6, i5) | 0;
27696 7 : if ((i5 | 0) == 0) {
27697 7 : HEAP32[i4 >> 2] = i2;
27698 7 : STACKTOP = i1;
27699 7 : return i5 | 0;
27700 7 : }
27701 7 : i6 = i3 + 28 | 0;
27702 7 : i14 = HEAP32[i6 >> 2] | 0;
27703 7 : i15 = i14 + i13 | 0;
27704 7 : _luaF_close(i3, i15);
27705 7 : if ((i5 | 0) == 6) {
27706 7 : i16 = _luaS_newlstr(i3, 2424, 23) | 0;
27707 7 : HEAP32[i15 >> 2] = i16;
27708 7 : HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
27709 7 : } else if ((i5 | 0) == 4) {
27710 7 : i16 = HEAP32[(HEAP32[i3 + 12 >> 2] | 0) + 180 >> 2] | 0;
27711 7 : HEAP32[i15 >> 2] = i16;
27712 7 : HEAP32[i14 + (i13 + 8) >> 2] = HEAPU8[i16 + 4 | 0] | 0 | 64;
27713 7 : } else {
27714 7 : i16 = HEAP32[i3 + 8 >> 2] | 0;
27715 7 : i18 = i16 + -16 | 0;
27716 7 : i17 = HEAP32[i18 + 4 >> 2] | 0;
27717 7 : HEAP32[i15 >> 2] = HEAP32[i18 >> 2];
27718 7 : HEAP32[i15 + 4 >> 2] = i17;
27719 7 : HEAP32[i14 + (i13 + 8) >> 2] = HEAP32[i16 + -8 >> 2];
27720 7 : }
27721 7 : i13 = i14 + (i13 + 16) | 0;
27722 7 : HEAP32[i3 + 8 >> 2] = i13;
27723 7 : HEAP32[i10 >> 2] = i11;
27724 7 : HEAP8[i12] = i7;
27725 7 : HEAP16[i9 >> 1] = i8;
27726 7 : if ((i11 | 0) != 0) {
27727 7 : do {
27728 7 : i7 = HEAP32[i11 + 4 >> 2] | 0;
27729 7 : i13 = i13 >>> 0 < i7 >>> 0 ? i7 : i13;
27730 7 : i11 = HEAP32[i11 + 8 >> 2] | 0;
27731 7 : } while ((i11 | 0) != 0);
27732 7 : }
27733 7 : i6 = i13 - (HEAP32[i6 >> 2] | 0) | 0;
27734 7 : i7 = (i6 >> 4) + 1 | 0;
27735 7 : i7 = ((i7 | 0) / 8 | 0) + 10 + i7 | 0;
27736 7 : i7 = (i7 | 0) > 1e6 ? 1e6 : i7;
27737 7 : if ((i6 | 0) > 15999984) {
27738 7 : HEAP32[i4 >> 2] = i2;
27739 7 : STACKTOP = i1;
27740 7 : return i5 | 0;
27741 7 : }
27742 7 : if ((i7 | 0) >= (HEAP32[i3 + 32 >> 2] | 0)) {
27743 7 : HEAP32[i4 >> 2] = i2;
27744 7 : STACKTOP = i1;
27745 7 : return i5 | 0;
27746 7 : }
27747 7 : _luaD_reallocstack(i3, i7);
27748 7 : HEAP32[i4 >> 2] = i2;
27749 7 : STACKTOP = i1;
27750 7 : return i5 | 0;
27751 7 : }
27752 143052 : function _luaH_resize(i1, i4, i6, i9) {
27753 143052 : i1 = i1 | 0;
27754 143052 : i4 = i4 | 0;
27755 143052 : i6 = i6 | 0;
27756 143052 : i9 = i9 | 0;
27757 143052 : var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0;
27758 143052 : i3 = STACKTOP;
27759 143052 : i8 = i4 + 28 | 0;
27760 143052 : i5 = HEAP32[i8 >> 2] | 0;
27761 143052 : i7 = HEAPU8[i4 + 7 | 0] | 0;
27762 143052 : i2 = HEAP32[i4 + 16 >> 2] | 0;
27763 143052 : if ((i5 | 0) < (i6 | 0)) {
27764 143052 : if ((i6 + 1 | 0) >>> 0 > 268435455) {
27765 143052 : _luaM_toobig(i1);
27766 143052 : }
27767 143052 : i11 = i4 + 12 | 0;
27768 143052 : i10 = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
27769 143052 : HEAP32[i11 >> 2] = i10;
27770 143052 : i11 = HEAP32[i8 >> 2] | 0;
27771 143052 : if ((i11 | 0) < (i6 | 0)) {
27772 143052 : do {
27773 143052 : HEAP32[i10 + (i11 << 4) + 8 >> 2] = 0;
27774 143052 : i11 = i11 + 1 | 0;
27775 143052 : } while ((i11 | 0) != (i6 | 0));
27776 143052 : }
27777 143052 : HEAP32[i8 >> 2] = i6;
27778 143052 : }
27779 143052 : _setnodevector(i1, i4, i9);
27780 143052 : do {
27781 143052 : if ((i5 | 0) > (i6 | 0)) {
27782 143052 : HEAP32[i8 >> 2] = i6;
27783 143052 : i8 = i4 + 12 | 0;
27784 143052 : i9 = i6;
27785 143052 : do {
27786 143052 : i10 = HEAP32[i8 >> 2] | 0;
27787 143052 : if ((HEAP32[i10 + (i9 << 4) + 8 >> 2] | 0) == 0) {
27788 143052 : i9 = i9 + 1 | 0;
27789 143052 : } else {
27790 143052 : i11 = i9 + 1 | 0;
27791 143052 : _luaH_setint(i1, i4, i11, i10 + (i9 << 4) | 0);
27792 143052 : i9 = i11;
27793 143052 : }
27794 143052 : } while ((i9 | 0) != (i5 | 0));
27795 143052 : if ((i6 + 1 | 0) >>> 0 > 268435455) {
27796 143052 : _luaM_toobig(i1);
27797 143052 : } else {
27798 143052 : i11 = i4 + 12 | 0;
27799 143052 : HEAP32[i11 >> 2] = _luaM_realloc_(i1, HEAP32[i11 >> 2] | 0, i5 << 4, i6 << 4) | 0;
27800 143052 : break;
27801 143052 : }
27802 143052 : }
27803 143052 : } while (0);
27804 143052 : i5 = 1 << i7;
27805 143052 : if ((i5 | 0) > 0) {
27806 143052 : i6 = i5;
27807 143052 : do {
27808 143052 : i6 = i6 + -1 | 0;
27809 143052 : i7 = i2 + (i6 << 5) + 8 | 0;
27810 143052 : if ((HEAP32[i7 >> 2] | 0) != 0) {
27811 143052 : i8 = i2 + (i6 << 5) + 16 | 0;
27812 143052 : i9 = _luaH_get(i4, i8) | 0;
27813 143052 : if ((i9 | 0) == 5192) {
27814 143052 : i9 = _luaH_newkey(i1, i4, i8) | 0;
27815 143052 : }
27816 143052 : i8 = i2 + (i6 << 5) | 0;
27817 143052 : i10 = HEAP32[i8 + 4 >> 2] | 0;
27818 143052 : i11 = i9;
27819 143052 : HEAP32[i11 >> 2] = HEAP32[i8 >> 2];
27820 143052 : HEAP32[i11 + 4 >> 2] = i10;
27821 143052 : HEAP32[i9 + 8 >> 2] = HEAP32[i7 >> 2];
27822 143052 : }
27823 143052 : } while ((i6 | 0) > 0);
27824 143052 : }
27825 143052 : if ((i2 | 0) == 8016) {
27826 143052 : STACKTOP = i3;
27827 143052 : return;
27828 143052 : }
27829 143052 : _luaM_realloc_(i1, i2, i5 << 5, 0) | 0;
27830 143052 : STACKTOP = i3;
27831 143052 : return;
27832 143052 : }
27833 13 : function _codearith(i4, i3, i2, i6, i5) {
27834 13 : i4 = i4 | 0;
27835 13 : i3 = i3 | 0;
27836 13 : i2 = i2 | 0;
27837 13 : i6 = i6 | 0;
27838 13 : i5 = i5 | 0;
27839 13 : var i1 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, d13 = 0.0;
27840 13 : i7 = STACKTOP;
27841 13 : if (((((((HEAP32[i2 >> 2] | 0) == 5 ? (HEAP32[i2 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i2 + 20 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 >> 2] | 0) == 5 : 0) ? (HEAP32[i6 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i6 + 20 >> 2] | 0) == -1 : 0) ? (d13 = +HEAPF64[i6 + 8 >> 3], !((i3 & -2 | 0) == 16 & d13 == 0.0)) : 0) {
27842 13 : i12 = i2 + 8 | 0;
27843 13 : HEAPF64[i12 >> 3] = +_luaO_arith(i3 + -13 | 0, +HEAPF64[i12 >> 3], d13);
27844 13 : STACKTOP = i7;
27845 13 : return;
27846 13 : }
27847 13 : if ((i3 | 0) == 19 | (i3 | 0) == 21) {
27848 13 : i11 = 0;
27849 13 : } else {
27850 13 : i11 = _luaK_exp2RK(i4, i6) | 0;
27851 13 : }
27852 13 : i12 = _luaK_exp2RK(i4, i2) | 0;
27853 13 : if ((i12 | 0) > (i11 | 0)) {
27854 13 : if (((HEAP32[i2 >> 2] | 0) == 6 ? (i8 = HEAP32[i2 + 8 >> 2] | 0, (i8 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
27855 13 : i10 = i4 + 48 | 0;
27856 13 : HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
27857 13 : }
27858 13 : if (((HEAP32[i6 >> 2] | 0) == 6 ? (i1 = HEAP32[i6 + 8 >> 2] | 0, (i1 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i1 | 0) : 0) {
27859 13 : i10 = i4 + 48 | 0;
27860 13 : HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
27861 13 : }
27862 13 : } else {
27863 13 : if (((HEAP32[i6 >> 2] | 0) == 6 ? (i10 = HEAP32[i6 + 8 >> 2] | 0, (i10 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i10 | 0) : 0) {
27864 13 : i10 = i4 + 48 | 0;
27865 13 : HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
27866 13 : }
27867 13 : if (((HEAP32[i2 >> 2] | 0) == 6 ? (i9 = HEAP32[i2 + 8 >> 2] | 0, (i9 & 256 | 0) == 0) : 0) ? (HEAPU8[i4 + 46 | 0] | 0 | 0) <= (i9 | 0) : 0) {
27868 13 : i10 = i4 + 48 | 0;
27869 13 : HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
27870 13 : }
27871 13 : }
27872 13 : HEAP32[i2 + 8 >> 2] = _luaK_code(i4, i11 << 14 | i3 | i12 << 23) | 0;
27873 13 : HEAP32[i2 >> 2] = 11;
27874 13 : HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i4 + 20 >> 2] | 0) + -1 << 2) >> 2] = i5;
27875 13 : STACKTOP = i7;
27876 13 : return;
27877 13 : }
27878 4 : function _GCTM(i1, i3) {
27879 4 : i1 = i1 | 0;
27880 4 : i3 = i3 | 0;
27881 4 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0;
27882 4 : i4 = STACKTOP;
27883 4 : STACKTOP = STACKTOP + 32 | 0;
27884 4 : i2 = i4 + 16 | 0;
27885 4 : i5 = i4;
27886 4 : i6 = HEAP32[i1 + 12 >> 2] | 0;
27887 4 : i9 = i6 + 104 | 0;
27888 4 : i8 = HEAP32[i9 >> 2] | 0;
27889 4 : HEAP32[i9 >> 2] = HEAP32[i8 >> 2];
27890 4 : i9 = i6 + 68 | 0;
27891 4 : HEAP32[i8 >> 2] = HEAP32[i9 >> 2];
27892 4 : HEAP32[i9 >> 2] = i8;
27893 4 : i9 = i8 + 5 | 0;
27894 4 : i7 = HEAPU8[i9] | 0;
27895 4 : HEAP8[i9] = i7 & 239;
27896 4 : if ((HEAPU8[i6 + 61 | 0] | 0) >= 2) {
27897 4 : HEAP8[i9] = HEAP8[i6 + 60 | 0] & 3 | i7 & 168;
27898 4 : }
27899 4 : HEAP32[i5 >> 2] = i8;
27900 4 : i7 = i5 + 8 | 0;
27901 4 : HEAP32[i7 >> 2] = HEAPU8[i8 + 4 | 0] | 0 | 64;
27902 4 : i8 = _luaT_gettmbyobj(i1, i5, 2) | 0;
27903 4 : if ((i8 | 0) == 0) {
27904 4 : STACKTOP = i4;
27905 4 : return;
27906 4 : }
27907 4 : i9 = i8 + 8 | 0;
27908 4 : if ((HEAP32[i9 >> 2] & 15 | 0) != 6) {
27909 4 : STACKTOP = i4;
27910 4 : return;
27911 4 : }
27912 4 : i12 = i1 + 41 | 0;
27913 4 : i13 = HEAP8[i12] | 0;
27914 4 : i10 = i6 + 63 | 0;
27915 4 : i11 = HEAP8[i10] | 0;
27916 4 : HEAP8[i12] = 0;
27917 4 : HEAP8[i10] = 0;
27918 4 : i6 = i1 + 8 | 0;
27919 4 : i14 = HEAP32[i6 >> 2] | 0;
27920 4 : i16 = i8;
27921 4 : i15 = HEAP32[i16 + 4 >> 2] | 0;
27922 4 : i8 = i14;
27923 4 : HEAP32[i8 >> 2] = HEAP32[i16 >> 2];
27924 4 : HEAP32[i8 + 4 >> 2] = i15;
27925 4 : HEAP32[i14 + 8 >> 2] = HEAP32[i9 >> 2];
27926 4 : i9 = HEAP32[i6 >> 2] | 0;
27927 4 : i14 = i5;
27928 4 : i8 = HEAP32[i14 + 4 >> 2] | 0;
27929 4 : i5 = i9 + 16 | 0;
27930 4 : HEAP32[i5 >> 2] = HEAP32[i14 >> 2];
27931 4 : HEAP32[i5 + 4 >> 2] = i8;
27932 4 : HEAP32[i9 + 24 >> 2] = HEAP32[i7 >> 2];
27933 4 : i5 = HEAP32[i6 >> 2] | 0;
27934 4 : HEAP32[i6 >> 2] = i5 + 32;
27935 4 : i5 = _luaD_pcall(i1, 7, 0, i5 - (HEAP32[i1 + 28 >> 2] | 0) | 0, 0) | 0;
27936 4 : HEAP8[i12] = i13;
27937 4 : HEAP8[i10] = i11;
27938 4 : if ((i5 | 0) == 0 | (i3 | 0) == 0) {
27939 4 : STACKTOP = i4;
27940 4 : return;
27941 4 : }
27942 4 : if ((i5 | 0) != 2) {
27943 4 : i16 = i5;
27944 4 : _luaD_throw(i1, i16);
27945 4 : }
27946 4 : i3 = HEAP32[i6 >> 2] | 0;
27947 4 : if ((HEAP32[i3 + -8 >> 2] & 15 | 0) == 4) {
27948 4 : i3 = (HEAP32[i3 + -16 >> 2] | 0) + 16 | 0;
27949 4 : } else {
27950 4 : i3 = 2528;
27951 4 : }
27952 4 : HEAP32[i2 >> 2] = i3;
27953 4 : _luaO_pushfstring(i1, 2544, i2) | 0;
27954 4 : i16 = 5;
27955 4 : _luaD_throw(i1, i16);
27956 4 : }
27957 2 : function _lua_gc(i3, i5, i4) {
27958 2 : i3 = i3 | 0;
27959 2 : i5 = i5 | 0;
27960 2 : i4 = i4 | 0;
27961 2 : var i1 = 0, i2 = 0;
27962 2 : i1 = STACKTOP;
27963 2 : i2 = HEAP32[i3 + 12 >> 2] | 0;
27964 2 : L1 : do {
27965 2 : switch (i5 | 0) {
27966 2 : case 8:
27967 2 : {
27968 2 : i5 = i2 + 160 | 0;
27969 2 : i2 = HEAP32[i5 >> 2] | 0;
27970 2 : HEAP32[i5 >> 2] = i4;
27971 2 : break;
27972 2 : }
27973 2 : case 11:
27974 2 : {
27975 2 : _luaC_changemode(i3, 0);
27976 2 : i2 = 0;
27977 2 : break;
27978 2 : }
27979 2 : case 2:
27980 2 : {
27981 2 : _luaC_fullgc(i3, 0);
27982 2 : i2 = 0;
27983 2 : break;
27984 2 : }
27985 2 : case 5:
27986 2 : {
27987 2 : if ((HEAP8[i2 + 62 | 0] | 0) == 2) {
27988 2 : i2 = (HEAP32[i2 + 20 >> 2] | 0) == 0 | 0;
27989 2 : _luaC_forcestep(i3);
27990 2 : break L1;
27991 2 : }
27992 2 : i4 = (i4 << 10) + -1600 | 0;
27993 2 : if ((HEAP8[i2 + 63 | 0] | 0) == 0) {
27994 2 : i5 = i4;
27995 2 : _luaE_setdebt(i2, i5);
27996 2 : _luaC_forcestep(i3);
27997 2 : i5 = i2 + 61 | 0;
27998 2 : i5 = HEAP8[i5] | 0;
27999 2 : i5 = i5 << 24 >> 24 == 5;
28000 2 : i5 = i5 & 1;
28001 2 : STACKTOP = i1;
28002 2 : return i5 | 0;
28003 2 : }
28004 2 : i5 = (HEAP32[i2 + 12 >> 2] | 0) + i4 | 0;
28005 2 : _luaE_setdebt(i2, i5);
28006 2 : _luaC_forcestep(i3);
28007 2 : i5 = i2 + 61 | 0;
28008 2 : i5 = HEAP8[i5] | 0;
28009 2 : i5 = i5 << 24 >> 24 == 5;
28010 2 : i5 = i5 & 1;
28011 2 : STACKTOP = i1;
28012 2 : return i5 | 0;
28013 2 : }
28014 2 : case 4:
28015 2 : {
28016 2 : i2 = (HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) & 1023;
28017 2 : break;
28018 2 : }
28019 2 : case 1:
28020 2 : {
28021 2 : _luaE_setdebt(i2, 0);
28022 2 : HEAP8[i2 + 63 | 0] = 1;
28023 2 : i2 = 0;
28024 2 : break;
28025 2 : }
28026 2 : case 3:
28027 2 : {
28028 2 : i2 = ((HEAP32[i2 + 12 >> 2] | 0) + (HEAP32[i2 + 8 >> 2] | 0) | 0) >>> 10;
28029 2 : break;
28030 2 : }
28031 2 : case 7:
28032 2 : {
28033 2 : i5 = i2 + 164 | 0;
28034 2 : i2 = HEAP32[i5 >> 2] | 0;
28035 2 : HEAP32[i5 >> 2] = i4;
28036 2 : break;
28037 2 : }
28038 2 : case 0:
28039 2 : {
28040 2 : HEAP8[i2 + 63 | 0] = 0;
28041 2 : i2 = 0;
28042 2 : break;
28043 2 : }
28044 2 : case 6:
28045 2 : {
28046 2 : i5 = i2 + 156 | 0;
28047 2 : i2 = HEAP32[i5 >> 2] | 0;
28048 2 : HEAP32[i5 >> 2] = i4;
28049 2 : break;
28050 2 : }
28051 2 : case 9:
28052 2 : {
28053 2 : i2 = HEAPU8[i2 + 63 | 0] | 0;
28054 2 : break;
28055 2 : }
28056 2 : case 10:
28057 2 : {
28058 2 : _luaC_changemode(i3, 2);
28059 2 : i2 = 0;
28060 2 : break;
28061 2 : }
28062 2 : default:
28063 2 : {
28064 2 : i2 = -1;
28065 2 : }
28066 2 : }
28067 2 : } while (0);
28068 2 : STACKTOP = i1;
28069 2 : return i2 | 0;
28070 2 : }
28071 1 : function _os_time(i1) {
28072 0 : i1 = i1 | 0;
28073 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
28074 0 : i2 = STACKTOP;
28075 0 : STACKTOP = STACKTOP + 64 | 0;
28076 0 : i4 = i2;
28077 0 : i5 = i2 + 48 | 0;
28078 0 : i3 = i2 + 4 | 0;
28079 0 : if ((_lua_type(i1, 1) | 0) < 1) {
28080 0 : i3 = _time(0) | 0;
28081 0 : } else {
28082 0 : _luaL_checktype(i1, 1, 5);
28083 0 : _lua_settop(i1, 1);
28084 0 : _lua_getfield(i1, -1, 5864);
28085 0 : i6 = _lua_tointegerx(i1, -1, i4) | 0;
28086 0 : i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
28087 0 : _lua_settop(i1, -2);
28088 0 : HEAP32[i3 >> 2] = i6;
28089 0 : _lua_getfield(i1, -1, 5872);
28090 0 : i6 = _lua_tointegerx(i1, -1, i4) | 0;
28091 0 : i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 0 : i6;
28092 0 : _lua_settop(i1, -2);
28093 0 : HEAP32[i3 + 4 >> 2] = i6;
28094 0 : _lua_getfield(i1, -1, 5880);
28095 0 : i6 = _lua_tointegerx(i1, -1, i4) | 0;
28096 0 : i6 = (HEAP32[i4 >> 2] | 0) == 0 ? 12 : i6;
28097 0 : _lua_settop(i1, -2);
28098 0 : HEAP32[i3 + 8 >> 2] = i6;
28099 0 : _lua_getfield(i1, -1, 5888);
28100 0 : i6 = _lua_tointegerx(i1, -1, i5) | 0;
28101 0 : if ((HEAP32[i5 >> 2] | 0) == 0) {
28102 0 : HEAP32[i4 >> 2] = 5888;
28103 0 : i6 = _luaL_error(i1, 5920, i4) | 0;
28104 0 : } else {
28105 0 : _lua_settop(i1, -2);
28106 0 : }
28107 0 : HEAP32[i3 + 12 >> 2] = i6;
28108 0 : _lua_getfield(i1, -1, 5896);
28109 0 : i6 = _lua_tointegerx(i1, -1, i5) | 0;
28110 0 : if ((HEAP32[i5 >> 2] | 0) == 0) {
28111 0 : HEAP32[i4 >> 2] = 5896;
28112 0 : i6 = _luaL_error(i1, 5920, i4) | 0;
28113 0 : } else {
28114 0 : _lua_settop(i1, -2);
28115 0 : }
28116 0 : HEAP32[i3 + 16 >> 2] = i6 + -1;
28117 0 : _lua_getfield(i1, -1, 5904);
28118 0 : i6 = _lua_tointegerx(i1, -1, i5) | 0;
28119 0 : if ((HEAP32[i5 >> 2] | 0) == 0) {
28120 0 : HEAP32[i4 >> 2] = 5904;
28121 0 : i6 = _luaL_error(i1, 5920, i4) | 0;
28122 0 : } else {
28123 0 : _lua_settop(i1, -2);
28124 0 : }
28125 0 : HEAP32[i3 + 20 >> 2] = i6 + -1900;
28126 0 : _lua_getfield(i1, -1, 5912);
28127 0 : if ((_lua_type(i1, -1) | 0) == 0) {
28128 0 : i4 = -1;
28129 0 : } else {
28130 0 : i4 = _lua_toboolean(i1, -1) | 0;
28131 0 : }
28132 0 : _lua_settop(i1, -2);
28133 0 : HEAP32[i3 + 32 >> 2] = i4;
28134 0 : i3 = _mktime(i3 | 0) | 0;
28135 0 : }
28136 0 : if ((i3 | 0) == -1) {
28137 0 : _lua_pushnil(i1);
28138 0 : STACKTOP = i2;
28139 0 : return 1;
28140 0 : } else {
28141 0 : _lua_pushnumber(i1, +(i3 | 0));
28142 0 : STACKTOP = i2;
28143 0 : return 1;
28144 0 : }
28145 0 : return 0;
28146 1 : }
28147 53 : function _addk(i6, i4, i3) {
28148 53 : i6 = i6 | 0;
28149 53 : i4 = i4 | 0;
28150 53 : i3 = i3 | 0;
28151 53 : var i1 = 0, i2 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
28152 53 : i1 = STACKTOP;
28153 53 : STACKTOP = STACKTOP + 16 | 0;
28154 53 : i10 = i1;
28155 53 : i2 = HEAP32[(HEAP32[i6 + 12 >> 2] | 0) + 52 >> 2] | 0;
28156 53 : i8 = _luaH_set(i2, HEAP32[i6 + 4 >> 2] | 0, i4) | 0;
28157 53 : i4 = HEAP32[i6 >> 2] | 0;
28158 53 : i9 = i8 + 8 | 0;
28159 53 : if (((HEAP32[i9 >> 2] | 0) == 3 ? (HEAPF64[i10 >> 3] = +HEAPF64[i8 >> 3] + 6755399441055744.0, i7 = HEAP32[i10 >> 2] | 0, i5 = HEAP32[i4 + 8 >> 2] | 0, (HEAP32[i5 + (i7 << 4) + 8 >> 2] | 0) == (HEAP32[i3 + 8 >> 2] | 0)) : 0) ? (_luaV_equalobj_(0, i5 + (i7 << 4) | 0, i3) | 0) != 0 : 0) {
28160 53 : i10 = i7;
28161 53 : STACKTOP = i1;
28162 53 : return i10 | 0;
28163 53 : }
28164 53 : i5 = i4 + 44 | 0;
28165 53 : i10 = HEAP32[i5 >> 2] | 0;
28166 53 : i7 = i6 + 32 | 0;
28167 53 : i6 = HEAP32[i7 >> 2] | 0;
28168 53 : HEAPF64[i8 >> 3] = +(i6 | 0);
28169 53 : HEAP32[i9 >> 2] = 3;
28170 53 : i9 = HEAP32[i5 >> 2] | 0;
28171 53 : if ((i6 | 0) >= (i9 | 0)) {
28172 53 : i9 = i4 + 8 | 0;
28173 53 : HEAP32[i9 >> 2] = _luaM_growaux_(i2, HEAP32[i9 >> 2] | 0, i5, 16, 67108863, 10600) | 0;
28174 53 : i9 = HEAP32[i5 >> 2] | 0;
28175 53 : }
28176 53 : i8 = HEAP32[i4 + 8 >> 2] | 0;
28177 53 : if ((i10 | 0) < (i9 | 0)) {
28178 53 : while (1) {
28179 53 : i9 = i10 + 1 | 0;
28180 53 : HEAP32[i8 + (i10 << 4) + 8 >> 2] = 0;
28181 53 : if ((i9 | 0) < (HEAP32[i5 >> 2] | 0)) {
28182 53 : i10 = i9;
28183 53 : } else {
28184 53 : break;
28185 53 : }
28186 53 : }
28187 53 : }
28188 53 : i5 = i3;
28189 53 : i9 = HEAP32[i5 + 4 >> 2] | 0;
28190 53 : i10 = i8 + (i6 << 4) | 0;
28191 53 : HEAP32[i10 >> 2] = HEAP32[i5 >> 2];
28192 53 : HEAP32[i10 + 4 >> 2] = i9;
28193 53 : i10 = i3 + 8 | 0;
28194 53 : HEAP32[i8 + (i6 << 4) + 8 >> 2] = HEAP32[i10 >> 2];
28195 53 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + 1;
28196 53 : if ((HEAP32[i10 >> 2] & 64 | 0) == 0) {
28197 53 : i10 = i6;
28198 53 : STACKTOP = i1;
28199 53 : return i10 | 0;
28200 53 : }
28201 53 : i3 = HEAP32[i3 >> 2] | 0;
28202 53 : if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
28203 53 : i10 = i6;
28204 53 : STACKTOP = i1;
28205 53 : return i10 | 0;
28206 53 : }
28207 53 : if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
28208 53 : i10 = i6;
28209 53 : STACKTOP = i1;
28210 53 : return i10 | 0;
28211 53 : }
28212 53 : _luaC_barrier_(i2, i4, i3);
28213 53 : i10 = i6;
28214 53 : STACKTOP = i1;
28215 53 : return i10 | 0;
28216 53 : }
28217 96 : function _singlevaraux(i5, i4, i2, i11) {
28218 96 : i5 = i5 | 0;
28219 96 : i4 = i4 | 0;
28220 96 : i2 = i2 | 0;
28221 96 : i11 = i11 | 0;
28222 96 : var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
28223 96 : i1 = STACKTOP;
28224 96 : if ((i5 | 0) == 0) {
28225 96 : i11 = 0;
28226 96 : STACKTOP = i1;
28227 96 : return i11 | 0;
28228 96 : }
28229 96 : i7 = i5 + 12 | 0;
28230 96 : i8 = i5 + 40 | 0;
28231 96 : i9 = HEAPU8[i5 + 46 | 0] | 0;
28232 96 : while (1) {
28233 96 : i6 = i9 + -1 | 0;
28234 96 : i10 = HEAP32[i5 >> 2] | 0;
28235 96 : if ((i9 | 0) <= 0) {
28236 96 : break;
28237 96 : }
28238 96 : if ((_luaS_eqstr(i4, HEAP32[(HEAP32[i10 + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i7 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i8 >> 2] | 0) + i6 << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) | 0) == 0) {
28239 96 : i9 = i6;
28240 96 : } else {
28241 96 : i3 = 5;
28242 96 : break;
28243 96 : }
28244 96 : }
28245 96 : if ((i3 | 0) == 5) {
28246 96 : HEAP32[i2 + 16 >> 2] = -1;
28247 96 : HEAP32[i2 + 20 >> 2] = -1;
28248 96 : HEAP32[i2 >> 2] = 7;
28249 96 : HEAP32[i2 + 8 >> 2] = i6;
28250 96 : if ((i11 | 0) != 0) {
28251 96 : i11 = 7;
28252 96 : STACKTOP = i1;
28253 96 : return i11 | 0;
28254 96 : }
28255 96 : i2 = i5 + 16 | 0;
28256 96 : do {
28257 96 : i2 = HEAP32[i2 >> 2] | 0;
28258 96 : } while ((HEAPU8[i2 + 8 | 0] | 0) > (i6 | 0));
28259 96 : HEAP8[i2 + 9 | 0] = 1;
28260 96 : i11 = 7;
28261 96 : STACKTOP = i1;
28262 96 : return i11 | 0;
28263 96 : }
28264 96 : i7 = HEAP32[i10 + 28 >> 2] | 0;
28265 96 : i6 = i5 + 47 | 0;
28266 96 : L17 : do {
28267 96 : if ((HEAP8[i6] | 0) != 0) {
28268 96 : i8 = 0;
28269 96 : while (1) {
28270 96 : i9 = i8 + 1 | 0;
28271 96 : if ((_luaS_eqstr(HEAP32[i7 + (i8 << 3) >> 2] | 0, i4) | 0) != 0) {
28272 96 : break;
28273 96 : }
28274 96 : if ((i9 | 0) < (HEAPU8[i6] | 0)) {
28275 96 : i8 = i9;
28276 96 : } else {
28277 96 : i3 = 13;
28278 96 : break L17;
28279 96 : }
28280 96 : }
28281 96 : if ((i8 | 0) < 0) {
28282 96 : i3 = 13;
28283 96 : }
28284 96 : } else {
28285 96 : i3 = 13;
28286 96 : }
28287 96 : } while (0);
28288 96 : do {
28289 96 : if ((i3 | 0) == 13) {
28290 96 : if ((_singlevaraux(HEAP32[i5 + 8 >> 2] | 0, i4, i2, 0) | 0) == 0) {
28291 96 : i11 = 0;
28292 96 : STACKTOP = i1;
28293 96 : return i11 | 0;
28294 96 : } else {
28295 96 : i8 = _newupvalue(i5, i4, i2) | 0;
28296 96 : break;
28297 96 : }
28298 96 : }
28299 96 : } while (0);
28300 96 : HEAP32[i2 + 16 >> 2] = -1;
28301 96 : HEAP32[i2 + 20 >> 2] = -1;
28302 96 : HEAP32[i2 >> 2] = 8;
28303 96 : HEAP32[i2 + 8 >> 2] = i8;
28304 96 : i11 = 8;
28305 96 : STACKTOP = i1;
28306 96 : return i11 | 0;
28307 96 : }
28308 775 : function _mainposition(i1, i3) {
28309 775 : i1 = i1 | 0;
28310 775 : i3 = i3 | 0;
28311 775 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
28312 775 : i2 = STACKTOP;
28313 775 : STACKTOP = STACKTOP + 16 | 0;
28314 775 : i4 = i2;
28315 775 : switch (HEAP32[i3 + 8 >> 2] & 63 | 0) {
28316 775 : case 3:
28317 775 : {
28318 775 : HEAPF64[i4 >> 3] = +HEAPF64[i3 >> 3] + 1.0;
28319 775 : i3 = (HEAP32[i4 + 4 >> 2] | 0) + (HEAP32[i4 >> 2] | 0) | 0;
28320 775 : if ((i3 | 0) < 0) {
28321 775 : i4 = 0 - i3 | 0;
28322 775 : i3 = (i3 | 0) == (i4 | 0) ? 0 : i4;
28323 775 : }
28324 775 : i5 = (HEAP32[i1 + 16 >> 2] | 0) + (((i3 | 0) % ((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1 | 0) | 0) << 5) | 0;
28325 775 : STACKTOP = i2;
28326 775 : return i5 | 0;
28327 775 : }
28328 775 : case 2:
28329 775 : {
28330 775 : i5 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
28331 775 : STACKTOP = i2;
28332 775 : return i5 | 0;
28333 775 : }
28334 775 : case 20:
28335 775 : {
28336 775 : i5 = HEAP32[i3 >> 2] | 0;
28337 775 : i4 = i5 + 6 | 0;
28338 775 : if ((HEAP8[i4] | 0) == 0) {
28339 775 : i6 = i5 + 8 | 0;
28340 775 : HEAP32[i6 >> 2] = _luaS_hash(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, HEAP32[i6 >> 2] | 0) | 0;
28341 775 : HEAP8[i4] = 1;
28342 775 : i5 = HEAP32[i3 >> 2] | 0;
28343 775 : }
28344 775 : i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i5 + 8 >> 2]) << 5) | 0;
28345 775 : STACKTOP = i2;
28346 775 : return i6 | 0;
28347 775 : }
28348 775 : case 22:
28349 775 : {
28350 775 : i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
28351 775 : STACKTOP = i2;
28352 775 : return i6 | 0;
28353 775 : }
28354 775 : case 4:
28355 775 : {
28356 775 : i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[(HEAP32[i3 >> 2] | 0) + 8 >> 2]) << 5) | 0;
28357 775 : STACKTOP = i2;
28358 775 : return i6 | 0;
28359 775 : }
28360 775 : case 1:
28361 775 : {
28362 775 : i6 = (HEAP32[i1 + 16 >> 2] | 0) + (((1 << HEAPU8[i1 + 7 | 0]) + -1 & HEAP32[i3 >> 2]) << 5) | 0;
28363 775 : STACKTOP = i2;
28364 775 : return i6 | 0;
28365 775 : }
28366 775 : default:
28367 775 : {
28368 775 : i6 = (HEAP32[i1 + 16 >> 2] | 0) + ((((HEAP32[i3 >> 2] | 0) >>> 0) % (((1 << HEAPU8[i1 + 7 | 0]) + -1 | 1) >>> 0) | 0) << 5) | 0;
28369 775 : STACKTOP = i2;
28370 775 : return i6 | 0;
28371 775 : }
28372 775 : }
28373 775 : return 0;
28374 775 : }
28375 88 : function _clearvalues(i2, i5, i1) {
28376 88 : i2 = i2 | 0;
28377 88 : i5 = i5 | 0;
28378 88 : i1 = i1 | 0;
28379 88 : var i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
28380 88 : i4 = STACKTOP;
28381 88 : if ((i5 | 0) == (i1 | 0)) {
28382 88 : STACKTOP = i4;
28383 88 : return;
28384 88 : }
28385 88 : do {
28386 88 : i7 = i5 + 16 | 0;
28387 88 : i9 = HEAP32[i7 >> 2] | 0;
28388 88 : i6 = i9 + (1 << (HEAPU8[i5 + 7 | 0] | 0) << 5) | 0;
28389 88 : i8 = i5 + 28 | 0;
28390 88 : if ((HEAP32[i8 >> 2] | 0) > 0) {
28391 88 : i11 = i5 + 12 | 0;
28392 88 : i12 = 0;
28393 88 : do {
28394 88 : i13 = HEAP32[i11 >> 2] | 0;
28395 88 : i10 = i13 + (i12 << 4) + 8 | 0;
28396 88 : i9 = HEAP32[i10 >> 2] | 0;
28397 88 : do {
28398 88 : if ((i9 & 64 | 0) != 0) {
28399 88 : i13 = HEAP32[i13 + (i12 << 4) >> 2] | 0;
28400 88 : if ((i9 & 15 | 0) != 4) {
28401 88 : if ((HEAP8[i13 + 5 | 0] & 3) == 0) {
28402 88 : break;
28403 88 : }
28404 88 : HEAP32[i10 >> 2] = 0;
28405 88 : break;
28406 88 : }
28407 88 : if ((i13 | 0) != 0 ? !((HEAP8[i13 + 5 | 0] & 3) == 0) : 0) {
28408 88 : _reallymarkobject(i2, i13);
28409 88 : }
28410 88 : }
28411 88 : } while (0);
28412 88 : i12 = i12 + 1 | 0;
28413 88 : } while ((i12 | 0) < (HEAP32[i8 >> 2] | 0));
28414 88 : i7 = HEAP32[i7 >> 2] | 0;
28415 88 : } else {
28416 88 : i7 = i9;
28417 88 : }
28418 88 : if (i7 >>> 0 < i6 >>> 0) {
28419 88 : do {
28420 88 : i8 = i7 + 8 | 0;
28421 88 : i9 = HEAP32[i8 >> 2] | 0;
28422 88 : do {
28423 88 : if (!((i9 | 0) == 0 | (i9 & 64 | 0) == 0)) {
28424 88 : i10 = HEAP32[i7 >> 2] | 0;
28425 88 : if ((i9 & 15 | 0) == 4) {
28426 88 : if ((i10 | 0) == 0) {
28427 88 : break;
28428 88 : }
28429 88 : if ((HEAP8[i10 + 5 | 0] & 3) == 0) {
28430 88 : break;
28431 88 : }
28432 88 : _reallymarkobject(i2, i10);
28433 88 : break;
28434 88 : }
28435 88 : if ((!((HEAP8[i10 + 5 | 0] & 3) == 0) ? (HEAP32[i8 >> 2] = 0, i3 = i7 + 24 | 0, (HEAP32[i3 >> 2] & 64 | 0) != 0) : 0) ? !((HEAP8[(HEAP32[i7 + 16 >> 2] | 0) + 5 | 0] & 3) == 0) : 0) {
28436 88 : HEAP32[i3 >> 2] = 11;
28437 88 : }
28438 88 : }
28439 88 : } while (0);
28440 88 : i7 = i7 + 32 | 0;
28441 88 : } while (i7 >>> 0 < i6 >>> 0);
28442 88 : }
28443 88 : i5 = HEAP32[i5 + 24 >> 2] | 0;
28444 88 : } while ((i5 | 0) != (i1 | 0));
28445 88 : STACKTOP = i4;
28446 88 : return;
28447 88 : }
28448 52164 : function _reallymarkobject(i1, i4) {
28449 52164 : i1 = i1 | 0;
28450 52164 : i4 = i4 | 0;
28451 52164 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
28452 52164 : i3 = STACKTOP;
28453 52164 : i2 = i4 + 5 | 0;
28454 52164 : HEAP8[i2] = HEAP8[i2] & 252;
28455 52164 : switch (HEAPU8[i4 + 4 | 0] | 0 | 0) {
28456 52164 : case 6:
28457 52164 : {
28458 52164 : i7 = i1 + 84 | 0;
28459 52164 : HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
28460 52164 : HEAP32[i7 >> 2] = i4;
28461 52164 : STACKTOP = i3;
28462 52164 : return;
28463 52164 : }
28464 52164 : case 20:
28465 52164 : case 4:
28466 52164 : {
28467 52164 : i4 = (HEAP32[i4 + 12 >> 2] | 0) + 17 | 0;
28468 52164 : break;
28469 52164 : }
28470 52164 : case 7:
28471 52164 : {
28472 52164 : i5 = HEAP32[i4 + 8 >> 2] | 0;
28473 52164 : if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
28474 52164 : _reallymarkobject(i1, i5);
28475 52164 : }
28476 52164 : i5 = HEAP32[i4 + 12 >> 2] | 0;
28477 52164 : if ((i5 | 0) != 0 ? !((HEAP8[i5 + 5 | 0] & 3) == 0) : 0) {
28478 52164 : _reallymarkobject(i1, i5);
28479 52164 : }
28480 52164 : i4 = (HEAP32[i4 + 16 >> 2] | 0) + 24 | 0;
28481 52164 : break;
28482 52164 : }
28483 52164 : case 8:
28484 52164 : {
28485 52164 : i7 = i1 + 84 | 0;
28486 52164 : HEAP32[i4 + 60 >> 2] = HEAP32[i7 >> 2];
28487 52164 : HEAP32[i7 >> 2] = i4;
28488 52164 : STACKTOP = i3;
28489 52164 : return;
28490 52164 : }
28491 52164 : case 10:
28492 52164 : {
28493 52164 : i6 = i4 + 8 | 0;
28494 52164 : i7 = HEAP32[i6 >> 2] | 0;
28495 52164 : if ((HEAP32[i7 + 8 >> 2] & 64 | 0) != 0 ? (i5 = HEAP32[i7 >> 2] | 0, !((HEAP8[i5 + 5 | 0] & 3) == 0)) : 0) {
28496 52164 : _reallymarkobject(i1, i5);
28497 52164 : i7 = HEAP32[i6 >> 2] | 0;
28498 52164 : }
28499 52164 : if ((i7 | 0) == (i4 + 16 | 0)) {
28500 52164 : i4 = 32;
28501 52164 : } else {
28502 52164 : STACKTOP = i3;
28503 52164 : return;
28504 52164 : }
28505 52164 : break;
28506 52164 : }
28507 52164 : case 5:
28508 52164 : {
28509 52164 : i7 = i1 + 84 | 0;
28510 52164 : HEAP32[i4 + 24 >> 2] = HEAP32[i7 >> 2];
28511 52164 : HEAP32[i7 >> 2] = i4;
28512 52164 : STACKTOP = i3;
28513 52164 : return;
28514 52164 : }
28515 52164 : case 38:
28516 52164 : {
28517 52164 : i7 = i1 + 84 | 0;
28518 52164 : HEAP32[i4 + 8 >> 2] = HEAP32[i7 >> 2];
28519 52164 : HEAP32[i7 >> 2] = i4;
28520 52164 : STACKTOP = i3;
28521 52164 : return;
28522 52164 : }
28523 52164 : case 9:
28524 52164 : {
28525 52164 : i7 = i1 + 84 | 0;
28526 52164 : HEAP32[i4 + 72 >> 2] = HEAP32[i7 >> 2];
28527 52164 : HEAP32[i7 >> 2] = i4;
28528 52164 : STACKTOP = i3;
28529 52164 : return;
28530 52164 : }
28531 52164 : default:
28532 52164 : {
28533 52164 : STACKTOP = i3;
28534 52164 : return;
28535 52164 : }
28536 52164 : }
28537 52164 : HEAP8[i2] = HEAPU8[i2] | 0 | 4;
28538 52164 : i7 = i1 + 16 | 0;
28539 52164 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + i4;
28540 52164 : STACKTOP = i3;
28541 52164 : return;
28542 52164 : }
28543 1 : function _lua_upvaluejoin(i1, i9, i7, i6, i3) {
28544 0 : i1 = i1 | 0;
28545 0 : i9 = i9 | 0;
28546 0 : i7 = i7 | 0;
28547 0 : i6 = i6 | 0;
28548 0 : i3 = i3 | 0;
28549 0 : var i2 = 0, i4 = 0, i5 = 0, i8 = 0, i10 = 0;
28550 0 : i2 = STACKTOP;
28551 0 : i5 = HEAP32[i1 + 16 >> 2] | 0;
28552 0 : do {
28553 0 : if ((i9 | 0) <= 0) {
28554 0 : if (!((i9 | 0) < -1000999)) {
28555 0 : i8 = (HEAP32[i1 + 8 >> 2] | 0) + (i9 << 4) | 0;
28556 0 : break;
28557 0 : }
28558 0 : if ((i9 | 0) == -1001e3) {
28559 0 : i8 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
28560 0 : break;
28561 0 : }
28562 0 : i10 = -1001e3 - i9 | 0;
28563 0 : i9 = HEAP32[i5 >> 2] | 0;
28564 0 : if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
28565 0 : i8 = i8 + (i10 + -1 << 4) + 16 | 0;
28566 0 : } else {
28567 0 : i8 = 5192;
28568 0 : }
28569 0 : } else {
28570 0 : i8 = (HEAP32[i5 >> 2] | 0) + (i9 << 4) | 0;
28571 0 : i8 = i8 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
28572 0 : }
28573 0 : } while (0);
28574 0 : i8 = HEAP32[i8 >> 2] | 0;
28575 0 : i7 = i8 + 16 + (i7 + -1 << 2) | 0;
28576 0 : do {
28577 0 : if ((i6 | 0) <= 0) {
28578 0 : if (!((i6 | 0) < -1000999)) {
28579 0 : i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
28580 0 : break;
28581 0 : }
28582 0 : if ((i6 | 0) == -1001e3) {
28583 0 : i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
28584 0 : break;
28585 0 : }
28586 0 : i6 = -1001e3 - i6 | 0;
28587 0 : i5 = HEAP32[i5 >> 2] | 0;
28588 0 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
28589 0 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
28590 0 : } else {
28591 0 : i4 = 5192;
28592 0 : }
28593 0 : } else {
28594 0 : i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
28595 0 : i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
28596 0 : }
28597 0 : } while (0);
28598 0 : i3 = (HEAP32[i4 >> 2] | 0) + 16 + (i3 + -1 << 2) | 0;
28599 0 : HEAP32[i7 >> 2] = HEAP32[i3 >> 2];
28600 0 : i3 = HEAP32[i3 >> 2] | 0;
28601 0 : if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
28602 0 : STACKTOP = i2;
28603 0 : return;
28604 0 : }
28605 0 : if ((HEAP8[i8 + 5 | 0] & 4) == 0) {
28606 0 : STACKTOP = i2;
28607 0 : return;
28608 0 : }
28609 0 : _luaC_barrier_(i1, i8, i3);
28610 0 : STACKTOP = i2;
28611 0 : return;
28612 1 : }
28613 1 : function _lua_upvalueid(i5, i7, i1) {
28614 0 : i5 = i5 | 0;
28615 0 : i7 = i7 | 0;
28616 0 : i1 = i1 | 0;
28617 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i8 = 0, i9 = 0, i10 = 0;
28618 0 : i2 = STACKTOP;
28619 0 : i4 = HEAP32[i5 + 16 >> 2] | 0;
28620 0 : i6 = (i7 | 0) > 0;
28621 0 : do {
28622 0 : if (!i6) {
28623 0 : if (!((i7 | 0) < -1000999)) {
28624 0 : i8 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
28625 0 : break;
28626 0 : }
28627 0 : if ((i7 | 0) == -1001e3) {
28628 0 : i8 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
28629 0 : break;
28630 0 : }
28631 0 : i10 = -1001e3 - i7 | 0;
28632 0 : i9 = HEAP32[i4 >> 2] | 0;
28633 0 : if ((HEAP32[i9 + 8 >> 2] | 0) != 22 ? (i8 = HEAP32[i9 >> 2] | 0, (i10 | 0) <= (HEAPU8[i8 + 6 | 0] | 0 | 0)) : 0) {
28634 0 : i8 = i8 + (i10 + -1 << 4) + 16 | 0;
28635 0 : } else {
28636 0 : i8 = 5192;
28637 0 : }
28638 0 : } else {
28639 0 : i8 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
28640 0 : i8 = i8 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i8 : 5192;
28641 0 : }
28642 0 : } while (0);
28643 0 : i9 = HEAP32[i8 + 8 >> 2] & 63;
28644 0 : if ((i9 | 0) == 38) {
28645 0 : i10 = (HEAP32[i8 >> 2] | 0) + (i1 + -1 << 4) + 16 | 0;
28646 0 : STACKTOP = i2;
28647 0 : return i10 | 0;
28648 0 : } else if ((i9 | 0) == 6) {
28649 0 : do {
28650 0 : if (!i6) {
28651 0 : if (!((i7 | 0) < -1000999)) {
28652 0 : i3 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
28653 0 : break;
28654 0 : }
28655 0 : if ((i7 | 0) == -1001e3) {
28656 0 : i3 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
28657 0 : break;
28658 0 : }
28659 0 : i5 = -1001e3 - i7 | 0;
28660 0 : i4 = HEAP32[i4 >> 2] | 0;
28661 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
28662 0 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
28663 0 : } else {
28664 0 : i3 = 5192;
28665 0 : }
28666 0 : } else {
28667 0 : i3 = (HEAP32[i4 >> 2] | 0) + (i7 << 4) | 0;
28668 0 : i3 = i3 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
28669 0 : }
28670 0 : } while (0);
28671 0 : i10 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 + (i1 + -1 << 2) >> 2] | 0;
28672 0 : STACKTOP = i2;
28673 0 : return i10 | 0;
28674 0 : } else {
28675 0 : i10 = 0;
28676 0 : STACKTOP = i2;
28677 0 : return i10 | 0;
28678 0 : }
28679 0 : return 0;
28680 1 : }
28681 9 : function _lua_rawequal(i2, i6, i4) {
28682 9 : i2 = i2 | 0;
28683 9 : i6 = i6 | 0;
28684 9 : i4 = i4 | 0;
28685 9 : var i1 = 0, i3 = 0, i5 = 0, i7 = 0;
28686 9 : i1 = STACKTOP;
28687 9 : i3 = HEAP32[i2 + 16 >> 2] | 0;
28688 9 : do {
28689 9 : if ((i6 | 0) <= 0) {
28690 9 : if (!((i6 | 0) < -1000999)) {
28691 9 : i5 = (HEAP32[i2 + 8 >> 2] | 0) + (i6 << 4) | 0;
28692 9 : break;
28693 9 : }
28694 9 : if ((i6 | 0) == -1001e3) {
28695 9 : i5 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
28696 9 : break;
28697 9 : }
28698 9 : i7 = -1001e3 - i6 | 0;
28699 9 : i6 = HEAP32[i3 >> 2] | 0;
28700 9 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i6 >> 2] | 0, (i7 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
28701 9 : i5 = i5 + (i7 + -1 << 4) + 16 | 0;
28702 9 : } else {
28703 9 : i5 = 5192;
28704 9 : }
28705 9 : } else {
28706 9 : i5 = (HEAP32[i3 >> 2] | 0) + (i6 << 4) | 0;
28707 9 : i5 = i5 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
28708 9 : }
28709 9 : } while (0);
28710 9 : do {
28711 9 : if ((i4 | 0) <= 0) {
28712 9 : if (!((i4 | 0) < -1000999)) {
28713 9 : i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
28714 9 : break;
28715 9 : }
28716 9 : if ((i4 | 0) == -1001e3) {
28717 9 : i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
28718 9 : break;
28719 9 : }
28720 9 : i2 = -1001e3 - i4 | 0;
28721 9 : i3 = HEAP32[i3 >> 2] | 0;
28722 9 : if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
28723 9 : i7 = 0;
28724 9 : STACKTOP = i1;
28725 9 : return i7 | 0;
28726 9 : }
28727 9 : i3 = HEAP32[i3 >> 2] | 0;
28728 9 : if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
28729 9 : i7 = 0;
28730 9 : STACKTOP = i1;
28731 9 : return i7 | 0;
28732 9 : } else {
28733 9 : i2 = i3 + (i2 + -1 << 4) + 16 | 0;
28734 9 : break;
28735 9 : }
28736 9 : } else {
28737 9 : i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
28738 9 : i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
28739 9 : }
28740 9 : } while (0);
28741 9 : if ((i5 | 0) == 5192 | (i2 | 0) == 5192) {
28742 9 : i7 = 0;
28743 9 : STACKTOP = i1;
28744 9 : return i7 | 0;
28745 9 : }
28746 9 : if ((HEAP32[i5 + 8 >> 2] | 0) == (HEAP32[i2 + 8 >> 2] | 0)) {
28747 9 : i2 = (_luaV_equalobj_(0, i5, i2) | 0) != 0;
28748 9 : } else {
28749 9 : i2 = 0;
28750 9 : }
28751 9 : i7 = i2 & 1;
28752 9 : STACKTOP = i1;
28753 9 : return i7 | 0;
28754 9 : }
28755 1 : function _luaO_chunkid(i1, i4, i6) {
28756 0 : i1 = i1 | 0;
28757 0 : i4 = i4 | 0;
28758 0 : i6 = i6 | 0;
28759 0 : var i2 = 0, i3 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
28760 0 : i2 = STACKTOP;
28761 0 : i3 = _strlen(i4 | 0) | 0;
28762 0 : i5 = HEAP8[i4] | 0;
28763 0 : if (i5 << 24 >> 24 == 64) {
28764 0 : if (i3 >>> 0 > i6 >>> 0) {
28765 0 : HEAP8[i1 + 0 | 0] = HEAP8[5552 | 0] | 0;
28766 0 : HEAP8[i1 + 1 | 0] = HEAP8[5553 | 0] | 0;
28767 0 : HEAP8[i1 + 2 | 0] = HEAP8[5554 | 0] | 0;
28768 0 : _memcpy(i1 + 3 | 0, i4 + (4 - i6 + i3) | 0, i6 + -3 | 0) | 0;
28769 0 : STACKTOP = i2;
28770 0 : return;
28771 0 : } else {
28772 0 : _memcpy(i1 | 0, i4 + 1 | 0, i3 | 0) | 0;
28773 0 : STACKTOP = i2;
28774 0 : return;
28775 0 : }
28776 0 : } else if (i5 << 24 >> 24 == 61) {
28777 0 : i4 = i4 + 1 | 0;
28778 0 : if (i3 >>> 0 > i6 >>> 0) {
28779 0 : i9 = i6 + -1 | 0;
28780 0 : _memcpy(i1 | 0, i4 | 0, i9 | 0) | 0;
28781 0 : HEAP8[i1 + i9 | 0] = 0;
28782 0 : STACKTOP = i2;
28783 0 : return;
28784 0 : } else {
28785 0 : _memcpy(i1 | 0, i4 | 0, i3 | 0) | 0;
28786 0 : STACKTOP = i2;
28787 0 : return;
28788 0 : }
28789 0 : } else {
28790 0 : i5 = _strchr(i4, 10) | 0;
28791 0 : i9 = i1 + 0 | 0;
28792 0 : i8 = 5560 | 0;
28793 0 : i7 = i9 + 9 | 0;
28794 0 : do {
28795 0 : HEAP8[i9] = HEAP8[i8] | 0;
28796 0 : i9 = i9 + 1 | 0;
28797 0 : i8 = i8 + 1 | 0;
28798 0 : } while ((i9 | 0) < (i7 | 0));
28799 0 : i7 = i1 + 9 | 0;
28800 0 : i6 = i6 + -15 | 0;
28801 0 : i8 = (i5 | 0) == 0;
28802 0 : if (i3 >>> 0 < i6 >>> 0 & i8) {
28803 0 : _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
28804 0 : i3 = i3 + 9 | 0;
28805 0 : } else {
28806 0 : if (!i8) {
28807 0 : i3 = i5 - i4 | 0;
28808 0 : }
28809 0 : i3 = i3 >>> 0 > i6 >>> 0 ? i6 : i3;
28810 0 : _memcpy(i7 | 0, i4 | 0, i3 | 0) | 0;
28811 0 : i9 = i1 + (i3 + 9) | 0;
28812 0 : HEAP8[i9 + 0 | 0] = HEAP8[5552 | 0] | 0;
28813 0 : HEAP8[i9 + 1 | 0] = HEAP8[5553 | 0] | 0;
28814 0 : HEAP8[i9 + 2 | 0] = HEAP8[5554 | 0] | 0;
28815 0 : i3 = i3 + 12 | 0;
28816 0 : }
28817 0 : i9 = i1 + i3 | 0;
28818 0 : HEAP8[i9 + 0 | 0] = HEAP8[5576 | 0] | 0;
28819 0 : HEAP8[i9 + 1 | 0] = HEAP8[5577 | 0] | 0;
28820 0 : HEAP8[i9 + 2 | 0] = HEAP8[5578 | 0] | 0;
28821 0 : STACKTOP = i2;
28822 0 : return;
28823 0 : }
28824 1 : }
28825 4 : function _luaS_resize(i4, i1) {
28826 4 : i4 = i4 | 0;
28827 4 : i1 = i1 | 0;
28828 4 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
28829 4 : i3 = STACKTOP;
28830 4 : i5 = HEAP32[i4 + 12 >> 2] | 0;
28831 4 : i2 = i5 + 24 | 0;
28832 4 : _luaC_runtilstate(i4, -5);
28833 4 : i5 = i5 + 32 | 0;
28834 4 : i8 = HEAP32[i5 >> 2] | 0;
28835 4 : L1 : do {
28836 4 : if ((i8 | 0) < (i1 | 0)) {
28837 4 : if ((i1 + 1 | 0) >>> 0 > 1073741823) {
28838 4 : _luaM_toobig(i4);
28839 4 : }
28840 4 : i7 = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
28841 4 : HEAP32[i2 >> 2] = i7;
28842 4 : i6 = HEAP32[i5 >> 2] | 0;
28843 4 : if ((i6 | 0) < (i1 | 0)) {
28844 4 : i8 = i6;
28845 4 : while (1) {
28846 4 : HEAP32[i7 + (i8 << 2) >> 2] = 0;
28847 4 : i8 = i8 + 1 | 0;
28848 4 : if ((i8 | 0) == (i1 | 0)) {
28849 4 : i8 = i6;
28850 4 : break L1;
28851 4 : }
28852 4 : i7 = HEAP32[i2 >> 2] | 0;
28853 4 : }
28854 4 : } else {
28855 4 : i8 = i6;
28856 4 : }
28857 4 : }
28858 4 : } while (0);
28859 4 : if ((i8 | 0) > 0) {
28860 4 : i6 = i1 + -1 | 0;
28861 4 : i7 = 0;
28862 4 : do {
28863 4 : i10 = (HEAP32[i2 >> 2] | 0) + (i7 << 2) | 0;
28864 4 : i9 = HEAP32[i10 >> 2] | 0;
28865 4 : HEAP32[i10 >> 2] = 0;
28866 4 : if ((i9 | 0) != 0) {
28867 4 : while (1) {
28868 4 : i8 = HEAP32[i9 >> 2] | 0;
28869 4 : i10 = HEAP32[i9 + 8 >> 2] & i6;
28870 4 : HEAP32[i9 >> 2] = HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2];
28871 4 : HEAP32[(HEAP32[i2 >> 2] | 0) + (i10 << 2) >> 2] = i9;
28872 4 : i10 = i9 + 5 | 0;
28873 4 : HEAP8[i10] = HEAP8[i10] & 191;
28874 4 : if ((i8 | 0) == 0) {
28875 4 : break;
28876 4 : } else {
28877 4 : i9 = i8;
28878 4 : }
28879 4 : }
28880 4 : i8 = HEAP32[i5 >> 2] | 0;
28881 4 : }
28882 4 : i7 = i7 + 1 | 0;
28883 4 : } while ((i7 | 0) < (i8 | 0));
28884 4 : }
28885 4 : if ((i8 | 0) <= (i1 | 0)) {
28886 4 : HEAP32[i5 >> 2] = i1;
28887 4 : STACKTOP = i3;
28888 4 : return;
28889 4 : }
28890 4 : if ((i1 + 1 | 0) >>> 0 > 1073741823) {
28891 4 : _luaM_toobig(i4);
28892 4 : }
28893 4 : HEAP32[i2 >> 2] = _luaM_realloc_(i4, HEAP32[i2 >> 2] | 0, i8 << 2, i1 << 2) | 0;
28894 4 : HEAP32[i5 >> 2] = i1;
28895 4 : STACKTOP = i3;
28896 4 : return;
28897 4 : }
28898 285989 : function _luaD_poscall(i6, i7) {
28899 285989 : i6 = i6 | 0;
28900 285989 : i7 = i7 | 0;
28901 285989 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
28902 285989 : i1 = STACKTOP;
28903 285989 : i4 = i6 + 16 | 0;
28904 285989 : i3 = HEAP32[i4 >> 2] | 0;
28905 285989 : i5 = HEAPU8[i6 + 40 | 0] | 0;
28906 285989 : if ((i5 & 6 | 0) == 0) {
28907 285989 : i8 = i3 + 8 | 0;
28908 285989 : } else {
28909 285989 : if ((i5 & 2 | 0) != 0) {
28910 285989 : i8 = i6 + 28 | 0;
28911 285989 : i7 = i7 - (HEAP32[i8 >> 2] | 0) | 0;
28912 285989 : _luaD_hook(i6, 1, -1);
28913 285989 : i7 = (HEAP32[i8 >> 2] | 0) + i7 | 0;
28914 285989 : }
28915 285989 : i8 = i3 + 8 | 0;
28916 285989 : HEAP32[i6 + 20 >> 2] = HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2];
28917 285989 : }
28918 285989 : i5 = HEAP32[i3 >> 2] | 0;
28919 285989 : i9 = HEAP16[i3 + 16 >> 1] | 0;
28920 285989 : i3 = i9 << 16 >> 16;
28921 285989 : HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
28922 285989 : i4 = i6 + 8 | 0;
28923 285989 : if (i9 << 16 >> 16 == 0) {
28924 285989 : i9 = i5;
28925 285989 : HEAP32[i4 >> 2] = i9;
28926 285989 : i9 = i3 + 1 | 0;
28927 285989 : STACKTOP = i1;
28928 285989 : return i9 | 0;
28929 285989 : } else {
28930 285989 : i6 = i3;
28931 285989 : }
28932 285989 : while (1) {
28933 285989 : if (!(i7 >>> 0 < (HEAP32[i4 >> 2] | 0) >>> 0)) {
28934 285989 : break;
28935 285989 : }
28936 285989 : i8 = i5 + 16 | 0;
28937 285989 : i11 = i7;
28938 285989 : i10 = HEAP32[i11 + 4 >> 2] | 0;
28939 285989 : i9 = i5;
28940 285989 : HEAP32[i9 >> 2] = HEAP32[i11 >> 2];
28941 285989 : HEAP32[i9 + 4 >> 2] = i10;
28942 285989 : HEAP32[i5 + 8 >> 2] = HEAP32[i7 + 8 >> 2];
28943 285989 : i6 = i6 + -1 | 0;
28944 285989 : if ((i6 | 0) == 0) {
28945 285989 : i2 = 12;
28946 285989 : break;
28947 285989 : } else {
28948 285989 : i7 = i7 + 16 | 0;
28949 285989 : i5 = i8;
28950 285989 : }
28951 285989 : }
28952 285989 : if ((i2 | 0) == 12) {
28953 285989 : HEAP32[i4 >> 2] = i8;
28954 285989 : i11 = i3 + 1 | 0;
28955 285989 : STACKTOP = i1;
28956 285989 : return i11 | 0;
28957 285989 : }
28958 285989 : if ((i6 | 0) > 0) {
28959 285989 : i2 = i6;
28960 285989 : i7 = i5;
28961 285989 : } else {
28962 285989 : i11 = i5;
28963 285989 : HEAP32[i4 >> 2] = i11;
28964 285989 : i11 = i3 + 1 | 0;
28965 285989 : STACKTOP = i1;
28966 285989 : return i11 | 0;
28967 285989 : }
28968 285989 : while (1) {
28969 285989 : i2 = i2 + -1 | 0;
28970 285989 : HEAP32[i7 + 8 >> 2] = 0;
28971 285989 : if ((i2 | 0) <= 0) {
28972 285989 : break;
28973 285989 : } else {
28974 285989 : i7 = i7 + 16 | 0;
28975 285989 : }
28976 285989 : }
28977 285989 : i11 = i5 + (i6 << 4) | 0;
28978 285989 : HEAP32[i4 >> 2] = i11;
28979 285989 : i11 = i3 + 1 | 0;
28980 285989 : STACKTOP = i1;
28981 285989 : return i11 | 0;
28982 285989 : }
28983 1 : function _lua_rawset(i1, i4) {
28984 0 : i1 = i1 | 0;
28985 0 : i4 = i4 | 0;
28986 0 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
28987 0 : i2 = STACKTOP;
28988 0 : i5 = HEAP32[i1 + 16 >> 2] | 0;
28989 0 : do {
28990 0 : if ((i4 | 0) <= 0) {
28991 0 : if (!((i4 | 0) < -1000999)) {
28992 0 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i4 << 4) | 0;
28993 0 : break;
28994 0 : }
28995 0 : if ((i4 | 0) == -1001e3) {
28996 0 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
28997 0 : break;
28998 0 : }
28999 0 : i4 = -1001e3 - i4 | 0;
29000 0 : i5 = HEAP32[i5 >> 2] | 0;
29001 0 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
29002 0 : i5 = i3 + (i4 + -1 << 4) + 16 | 0;
29003 0 : } else {
29004 0 : i5 = 5192;
29005 0 : }
29006 0 : } else {
29007 0 : i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
29008 0 : i5 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
29009 0 : }
29010 0 : } while (0);
29011 0 : i4 = i1 + 8 | 0;
29012 0 : i6 = HEAP32[i4 >> 2] | 0;
29013 0 : i3 = _luaH_set(i1, HEAP32[i5 >> 2] | 0, i6 + -32 | 0) | 0;
29014 0 : i9 = i6 + -16 | 0;
29015 0 : i8 = HEAP32[i9 + 4 >> 2] | 0;
29016 0 : i7 = i3;
29017 0 : HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
29018 0 : HEAP32[i7 + 4 >> 2] = i8;
29019 0 : HEAP32[i3 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
29020 0 : HEAP8[(HEAP32[i5 >> 2] | 0) + 6 | 0] = 0;
29021 0 : i3 = HEAP32[i4 >> 2] | 0;
29022 0 : if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
29023 0 : i9 = i3;
29024 0 : i9 = i9 + -32 | 0;
29025 0 : HEAP32[i4 >> 2] = i9;
29026 0 : STACKTOP = i2;
29027 0 : return;
29028 0 : }
29029 0 : if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
29030 0 : i9 = i3;
29031 0 : i9 = i9 + -32 | 0;
29032 0 : HEAP32[i4 >> 2] = i9;
29033 0 : STACKTOP = i2;
29034 0 : return;
29035 0 : }
29036 0 : i5 = HEAP32[i5 >> 2] | 0;
29037 0 : if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
29038 0 : i9 = i3;
29039 0 : i9 = i9 + -32 | 0;
29040 0 : HEAP32[i4 >> 2] = i9;
29041 0 : STACKTOP = i2;
29042 0 : return;
29043 0 : }
29044 0 : _luaC_barrierback_(i1, i5);
29045 0 : i9 = HEAP32[i4 >> 2] | 0;
29046 0 : i9 = i9 + -32 | 0;
29047 0 : HEAP32[i4 >> 2] = i9;
29048 0 : STACKTOP = i2;
29049 0 : return;
29050 1 : }
29051 8 : function _saveSetjmp(i4, i3, i1) {
29052 8 : i4 = i4 | 0;
29053 8 : i3 = i3 | 0;
29054 8 : i1 = i1 | 0;
29055 8 : var i2 = 0;
29056 8 : setjmpId = setjmpId + 1 | 0;
29057 8 : HEAP32[i4 >> 2] = setjmpId;
29058 8 : while ((i2 | 0) < 40) {
29059 8 : if ((HEAP32[i1 + (i2 << 2) >> 2] | 0) == 0) {
29060 8 : HEAP32[i1 + (i2 << 2) >> 2] = setjmpId;
29061 8 : HEAP32[i1 + ((i2 << 2) + 4) >> 2] = i3;
29062 8 : HEAP32[i1 + ((i2 << 2) + 8) >> 2] = 0;
29063 8 : return 0;
29064 8 : }
29065 8 : i2 = i2 + 2 | 0;
29066 8 : }
29067 8 : _putchar(116);
29068 8 : _putchar(111);
29069 8 : _putchar(111);
29070 8 : _putchar(32);
29071 8 : _putchar(109);
29072 8 : _putchar(97);
29073 8 : _putchar(110);
29074 8 : _putchar(121);
29075 8 : _putchar(32);
29076 8 : _putchar(115);
29077 8 : _putchar(101);
29078 8 : _putchar(116);
29079 8 : _putchar(106);
29080 8 : _putchar(109);
29081 8 : _putchar(112);
29082 8 : _putchar(115);
29083 8 : _putchar(32);
29084 8 : _putchar(105);
29085 8 : _putchar(110);
29086 8 : _putchar(32);
29087 8 : _putchar(97);
29088 8 : _putchar(32);
29089 8 : _putchar(102);
29090 8 : _putchar(117);
29091 8 : _putchar(110);
29092 8 : _putchar(99);
29093 8 : _putchar(116);
29094 8 : _putchar(105);
29095 8 : _putchar(111);
29096 8 : _putchar(110);
29097 8 : _putchar(32);
29098 8 : _putchar(99);
29099 8 : _putchar(97);
29100 8 : _putchar(108);
29101 8 : _putchar(108);
29102 8 : _putchar(44);
29103 8 : _putchar(32);
29104 8 : _putchar(98);
29105 8 : _putchar(117);
29106 8 : _putchar(105);
29107 8 : _putchar(108);
29108 8 : _putchar(100);
29109 8 : _putchar(32);
29110 8 : _putchar(119);
29111 8 : _putchar(105);
29112 8 : _putchar(116);
29113 8 : _putchar(104);
29114 8 : _putchar(32);
29115 8 : _putchar(97);
29116 8 : _putchar(32);
29117 8 : _putchar(104);
29118 8 : _putchar(105);
29119 8 : _putchar(103);
29120 8 : _putchar(104);
29121 8 : _putchar(101);
29122 8 : _putchar(114);
29123 8 : _putchar(32);
29124 8 : _putchar(118);
29125 8 : _putchar(97);
29126 8 : _putchar(108);
29127 8 : _putchar(117);
29128 8 : _putchar(101);
29129 8 : _putchar(32);
29130 8 : _putchar(102);
29131 8 : _putchar(111);
29132 8 : _putchar(114);
29133 8 : _putchar(32);
29134 8 : _putchar(77);
29135 8 : _putchar(65);
29136 8 : _putchar(88);
29137 8 : _putchar(95);
29138 8 : _putchar(83);
29139 8 : _putchar(69);
29140 8 : _putchar(84);
29141 8 : _putchar(74);
29142 8 : _putchar(77);
29143 8 : _putchar(80);
29144 8 : _putchar(83);
29145 8 : _putchar(10);
29146 8 : abort(0);
29147 8 : return 0;
29148 8 : }
29149 1 : function _lua_newthread(i5) {
29150 0 : i5 = i5 | 0;
29151 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
29152 0 : i1 = STACKTOP;
29153 0 : i3 = i5 + 12 | 0;
29154 0 : if ((HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) > 0) {
29155 0 : _luaC_step(i5);
29156 0 : }
29157 0 : i2 = _luaC_newobj(i5, 8, 112, 0, 0) | 0;
29158 0 : i6 = i5 + 8 | 0;
29159 0 : i4 = HEAP32[i6 >> 2] | 0;
29160 0 : HEAP32[i4 >> 2] = i2;
29161 0 : HEAP32[i4 + 8 >> 2] = 72;
29162 0 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
29163 0 : HEAP32[i2 + 12 >> 2] = HEAP32[i3 >> 2];
29164 0 : i6 = i2 + 28 | 0;
29165 0 : HEAP32[i6 >> 2] = 0;
29166 0 : i4 = i2 + 16 | 0;
29167 0 : HEAP32[i4 >> 2] = 0;
29168 0 : i3 = i2 + 32 | 0;
29169 0 : HEAP32[i3 >> 2] = 0;
29170 0 : HEAP32[i2 + 64 >> 2] = 0;
29171 0 : HEAP16[i2 + 38 >> 1] = 0;
29172 0 : i9 = i2 + 52 | 0;
29173 0 : HEAP32[i9 >> 2] = 0;
29174 0 : i8 = i2 + 40 | 0;
29175 0 : HEAP8[i8] = 0;
29176 0 : i10 = i2 + 44 | 0;
29177 0 : HEAP32[i10 >> 2] = 0;
29178 0 : HEAP8[i2 + 41 | 0] = 1;
29179 0 : i7 = i2 + 48 | 0;
29180 0 : HEAP32[i7 >> 2] = 0;
29181 0 : HEAP32[i2 + 56 >> 2] = 0;
29182 0 : HEAP16[i2 + 36 >> 1] = 1;
29183 0 : HEAP8[i2 + 6 | 0] = 0;
29184 0 : HEAP32[i2 + 68 >> 2] = 0;
29185 0 : HEAP8[i8] = HEAP8[i5 + 40 | 0] | 0;
29186 0 : i8 = HEAP32[i5 + 44 >> 2] | 0;
29187 0 : HEAP32[i10 >> 2] = i8;
29188 0 : HEAP32[i9 >> 2] = HEAP32[i5 + 52 >> 2];
29189 0 : HEAP32[i7 >> 2] = i8;
29190 0 : i5 = _luaM_realloc_(i5, 0, 0, 640) | 0;
29191 0 : HEAP32[i6 >> 2] = i5;
29192 0 : HEAP32[i3 >> 2] = 40;
29193 0 : i6 = 0;
29194 0 : do {
29195 0 : HEAP32[i5 + (i6 << 4) + 8 >> 2] = 0;
29196 0 : i6 = i6 + 1 | 0;
29197 0 : } while ((i6 | 0) != 40);
29198 0 : HEAP32[i2 + 24 >> 2] = i5 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
29199 0 : i10 = i2 + 72 | 0;
29200 0 : HEAP32[i2 + 80 >> 2] = 0;
29201 0 : HEAP32[i2 + 84 >> 2] = 0;
29202 0 : HEAP8[i2 + 90 | 0] = 0;
29203 0 : HEAP32[i10 >> 2] = i5;
29204 0 : HEAP32[i2 + 8 >> 2] = i5 + 16;
29205 0 : HEAP32[i5 + 8 >> 2] = 0;
29206 0 : HEAP32[i2 + 76 >> 2] = i5 + 336;
29207 0 : HEAP32[i4 >> 2] = i10;
29208 0 : STACKTOP = i1;
29209 0 : return i2 | 0;
29210 1 : }
29211 1 : function _luaK_self(i2, i5, i3) {
29212 0 : i2 = i2 | 0;
29213 0 : i5 = i5 | 0;
29214 0 : i3 = i3 | 0;
29215 0 : var i1 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
29216 0 : i1 = STACKTOP;
29217 0 : _luaK_dischargevars(i2, i5);
29218 0 : if ((HEAP32[i5 >> 2] | 0) == 6) {
29219 0 : i6 = i5 + 8 | 0;
29220 0 : i8 = HEAP32[i6 >> 2] | 0;
29221 0 : if ((HEAP32[i5 + 16 >> 2] | 0) != (HEAP32[i5 + 20 >> 2] | 0)) {
29222 0 : if ((i8 | 0) < (HEAPU8[i2 + 46 | 0] | 0 | 0)) {
29223 0 : i7 = 6;
29224 0 : } else {
29225 0 : _exp2reg(i2, i5, i8);
29226 0 : }
29227 0 : }
29228 0 : } else {
29229 0 : i6 = i5 + 8 | 0;
29230 0 : i7 = 6;
29231 0 : }
29232 0 : if ((i7 | 0) == 6) {
29233 0 : _luaK_exp2nextreg(i2, i5);
29234 0 : }
29235 0 : i8 = HEAP32[i6 >> 2] | 0;
29236 0 : if (((HEAP32[i5 >> 2] | 0) == 6 ? (i8 & 256 | 0) == 0 : 0) ? (HEAPU8[i2 + 46 | 0] | 0 | 0) <= (i8 | 0) : 0) {
29237 0 : i10 = i2 + 48 | 0;
29238 0 : HEAP8[i10] = (HEAP8[i10] | 0) + -1 << 24 >> 24;
29239 0 : }
29240 0 : i7 = i2 + 48 | 0;
29241 0 : HEAP32[i6 >> 2] = HEAPU8[i7] | 0;
29242 0 : HEAP32[i5 >> 2] = 6;
29243 0 : i10 = HEAP8[i7] | 0;
29244 0 : i5 = (i10 & 255) + 2 | 0;
29245 0 : i9 = (HEAP32[i2 >> 2] | 0) + 78 | 0;
29246 0 : do {
29247 0 : if (i5 >>> 0 > (HEAPU8[i9] | 0) >>> 0) {
29248 0 : if (i5 >>> 0 > 249) {
29249 0 : _luaX_syntaxerror(HEAP32[i2 + 12 >> 2] | 0, 10536);
29250 0 : } else {
29251 0 : HEAP8[i9] = i5;
29252 0 : i4 = HEAP8[i7] | 0;
29253 0 : break;
29254 0 : }
29255 0 : } else {
29256 0 : i4 = i10;
29257 0 : }
29258 0 : } while (0);
29259 0 : HEAP8[i7] = (i4 & 255) + 2;
29260 0 : i10 = HEAP32[i6 >> 2] | 0;
29261 0 : _luaK_code(i2, i8 << 23 | i10 << 6 | (_luaK_exp2RK(i2, i3) | 0) << 14 | 12) | 0;
29262 0 : if ((HEAP32[i3 >> 2] | 0) != 6) {
29263 0 : STACKTOP = i1;
29264 0 : return;
29265 0 : }
29266 0 : i3 = HEAP32[i3 + 8 >> 2] | 0;
29267 0 : if ((i3 & 256 | 0) != 0) {
29268 0 : STACKTOP = i1;
29269 0 : return;
29270 0 : }
29271 0 : if ((HEAPU8[i2 + 46 | 0] | 0 | 0) > (i3 | 0)) {
29272 0 : STACKTOP = i1;
29273 0 : return;
29274 0 : }
29275 0 : HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
29276 0 : STACKTOP = i1;
29277 0 : return;
29278 1 : }
29279 8 : function _luaD_rawrunprotected(i10, i9, i11) {
29280 8 : i10 = i10 | 0;
29281 8 : i9 = i9 | 0;
29282 8 : i11 = i11 | 0;
29283 8 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i12 = 0, i13 = 0;
29284 8 : i7 = STACKTOP;
29285 8 : STACKTOP = STACKTOP + 176 | 0;
29286 8 : i8 = STACKTOP;
29287 8 : STACKTOP = STACKTOP + 168 | 0;
29288 8 : HEAP32[i8 >> 2] = 0;
29289 8 : i6 = i7;
29290 8 : i5 = i10 + 38 | 0;
29291 8 : i4 = HEAP16[i5 >> 1] | 0;
29292 8 : i1 = i6 + 160 | 0;
29293 8 : HEAP32[i1 >> 2] = 0;
29294 8 : i3 = i10 + 64 | 0;
29295 8 : HEAP32[i6 >> 2] = HEAP32[i3 >> 2];
29296 8 : HEAP32[i3 >> 2] = i6;
29297 8 : _saveSetjmp(i6 + 4 | 0, 1, i8 | 0) | 0;
29298 8 : __THREW__ = 0;
29299 8 : i13 = __THREW__;
29300 8 : __THREW__ = 0;
29301 8 : if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
29302 8 : i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
29303 8 : if ((i12 | 0) == 0) {
29304 8 : _longjmp(i13 | 0, threwValue | 0);
29305 8 : }
29306 8 : tempRet0 = threwValue;
29307 8 : } else {
29308 8 : i12 = -1;
29309 8 : }
29310 8 : if ((i12 | 0) == 1) {
29311 8 : i12 = tempRet0;
29312 8 : } else {
29313 8 : i12 = 0;
29314 8 : }
29315 8 : while (1) {
29316 8 : if ((i12 | 0) != 0) {
29317 8 : i2 = 6;
29318 8 : break;
29319 8 : }
29320 8 : __THREW__ = 0;
29321 8 : invoke_vii(i9 | 0, i10 | 0, i11 | 0);
29322 8 : i13 = __THREW__;
29323 8 : __THREW__ = 0;
29324 8 : if ((i13 | 0) != 0 & (threwValue | 0) != 0) {
29325 8 : i12 = _testSetjmp(HEAP32[i13 >> 2] | 0, i8) | 0;
29326 8 : if ((i12 | 0) == 0) {
29327 8 : _longjmp(i13 | 0, threwValue | 0);
29328 8 : }
29329 8 : tempRet0 = threwValue;
29330 8 : } else {
29331 8 : i12 = -1;
29332 8 : }
29333 8 : if ((i12 | 0) == 1) {
29334 8 : i12 = tempRet0;
29335 8 : } else {
29336 8 : break;
29337 8 : }
29338 8 : }
29339 8 : if ((i2 | 0) == 6) {
29340 8 : i13 = HEAP32[i6 >> 2] | 0;
29341 8 : HEAP32[i3 >> 2] = i13;
29342 8 : HEAP16[i5 >> 1] = i4;
29343 8 : i13 = HEAP32[i1 >> 2] | 0;
29344 8 : STACKTOP = i7;
29345 8 : return i13 | 0;
29346 8 : }
29347 8 : i13 = HEAP32[i6 >> 2] | 0;
29348 8 : HEAP32[i3 >> 2] = i13;
29349 8 : HEAP16[i5 >> 1] = i4;
29350 8 : i13 = HEAP32[i1 >> 2] | 0;
29351 8 : STACKTOP = i7;
29352 8 : return i13 | 0;
29353 8 : }
29354 1 : function _luaB_tonumber(i1) {
29355 1 : i1 = i1 | 0;
29356 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0, i7 = 0, d8 = 0.0, i9 = 0, i10 = 0;
29357 1 : i2 = STACKTOP;
29358 1 : STACKTOP = STACKTOP + 16 | 0;
29359 1 : i3 = i2 + 4 | 0;
29360 1 : i4 = i2;
29361 1 : do {
29362 1 : if ((_lua_type(i1, 2) | 0) >= 1) {
29363 1 : i9 = _luaL_checklstring(i1, 1, i4) | 0;
29364 1 : i3 = i9 + (HEAP32[i4 >> 2] | 0) | 0;
29365 1 : i5 = _luaL_checkinteger(i1, 2) | 0;
29366 1 : if (!((i5 + -2 | 0) >>> 0 < 35)) {
29367 1 : _luaL_argerror(i1, 2, 9648) | 0;
29368 1 : }
29369 1 : i10 = _strspn(i9, 9672) | 0;
29370 1 : i7 = i9 + i10 | 0;
29371 1 : i4 = HEAP8[i7] | 0;
29372 1 : if (i4 << 24 >> 24 == 43) {
29373 1 : i4 = 0;
29374 1 : i7 = i9 + (i10 + 1) | 0;
29375 1 : } else if (i4 << 24 >> 24 == 45) {
29376 1 : i4 = 1;
29377 1 : i7 = i9 + (i10 + 1) | 0;
29378 1 : } else {
29379 1 : i4 = 0;
29380 1 : }
29381 1 : if ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0) {
29382 1 : d6 = +(i5 | 0);
29383 1 : d8 = 0.0;
29384 1 : do {
29385 1 : i9 = HEAP8[i7] | 0;
29386 1 : i10 = i9 & 255;
29387 1 : if ((i10 + -48 | 0) >>> 0 < 10) {
29388 1 : i9 = (i9 << 24 >> 24) + -48 | 0;
29389 1 : } else {
29390 1 : i9 = (_toupper(i10 | 0) | 0) + -55 | 0;
29391 1 : }
29392 1 : if ((i9 | 0) >= (i5 | 0)) {
29393 1 : break;
29394 1 : }
29395 1 : d8 = d6 * d8 + +(i9 | 0);
29396 1 : i7 = i7 + 1 | 0;
29397 1 : } while ((_isalnum(HEAPU8[i7] | 0 | 0) | 0) != 0);
29398 1 : if ((i7 + (_strspn(i7, 9672) | 0) | 0) == (i3 | 0)) {
29399 1 : if ((i4 | 0) != 0) {
29400 1 : d8 = -d8;
29401 1 : }
29402 1 : _lua_pushnumber(i1, d8);
29403 1 : STACKTOP = i2;
29404 1 : return 1;
29405 1 : }
29406 1 : }
29407 1 : } else {
29408 1 : d6 = +_lua_tonumberx(i1, 1, i3);
29409 1 : if ((HEAP32[i3 >> 2] | 0) == 0) {
29410 1 : _luaL_checkany(i1, 1);
29411 1 : break;
29412 1 : }
29413 1 : _lua_pushnumber(i1, d6);
29414 1 : STACKTOP = i2;
29415 1 : return 1;
29416 1 : }
29417 1 : } while (0);
29418 1 : _lua_pushnil(i1);
29419 1 : STACKTOP = i2;
29420 1 : return 1;
29421 1 : }
29422 9 : function _luaK_storevar(i1, i5, i3) {
29423 9 : i1 = i1 | 0;
29424 9 : i5 = i5 | 0;
29425 9 : i3 = i3 | 0;
29426 9 : var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
29427 9 : i2 = STACKTOP;
29428 9 : i7 = HEAP32[i5 >> 2] | 0;
29429 9 : if ((i7 | 0) == 7) {
29430 9 : if (((HEAP32[i3 >> 2] | 0) == 6 ? (i6 = HEAP32[i3 + 8 >> 2] | 0, (i6 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0) <= (i6 | 0) : 0) {
29431 9 : i7 = i1 + 48 | 0;
29432 9 : HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
29433 9 : }
29434 9 : _exp2reg(i1, i3, HEAP32[i5 + 8 >> 2] | 0);
29435 9 : STACKTOP = i2;
29436 9 : return;
29437 9 : } else if ((i7 | 0) == 9) {
29438 9 : i4 = i5 + 8 | 0;
29439 9 : i7 = (HEAP8[i4 + 3 | 0] | 0) == 7 ? 10 : 8;
29440 9 : i6 = _luaK_exp2RK(i1, i3) | 0;
29441 9 : _luaK_code(i1, i6 << 14 | i7 | HEAPU8[i4 + 2 | 0] << 6 | HEAPU16[i4 >> 1] << 23) | 0;
29442 9 : } else if ((i7 | 0) == 8) {
29443 9 : _luaK_dischargevars(i1, i3);
29444 9 : if ((HEAP32[i3 >> 2] | 0) == 6) {
29445 9 : i6 = i3 + 8 | 0;
29446 9 : i7 = HEAP32[i6 >> 2] | 0;
29447 9 : if ((HEAP32[i3 + 16 >> 2] | 0) != (HEAP32[i3 + 20 >> 2] | 0)) {
29448 9 : if ((i7 | 0) < (HEAPU8[i1 + 46 | 0] | 0)) {
29449 9 : i4 = 12;
29450 9 : } else {
29451 9 : _exp2reg(i1, i3, i7);
29452 9 : i7 = HEAP32[i6 >> 2] | 0;
29453 9 : }
29454 9 : }
29455 9 : } else {
29456 9 : i6 = i3 + 8 | 0;
29457 9 : i4 = 12;
29458 9 : }
29459 9 : if ((i4 | 0) == 12) {
29460 9 : _luaK_exp2nextreg(i1, i3);
29461 9 : i7 = HEAP32[i6 >> 2] | 0;
29462 9 : }
29463 9 : _luaK_code(i1, i7 << 6 | HEAP32[i5 + 8 >> 2] << 23 | 9) | 0;
29464 9 : }
29465 9 : if ((HEAP32[i3 >> 2] | 0) != 6) {
29466 9 : STACKTOP = i2;
29467 9 : return;
29468 9 : }
29469 9 : i3 = HEAP32[i3 + 8 >> 2] | 0;
29470 9 : if ((i3 & 256 | 0) != 0) {
29471 9 : STACKTOP = i2;
29472 9 : return;
29473 9 : }
29474 9 : if ((HEAPU8[i1 + 46 | 0] | 0) > (i3 | 0)) {
29475 9 : STACKTOP = i2;
29476 9 : return;
29477 9 : }
29478 9 : i7 = i1 + 48 | 0;
29479 9 : HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
29480 9 : STACKTOP = i2;
29481 9 : return;
29482 9 : }
29483 1 : function _closegoto(i10, i3, i9) {
29484 0 : i10 = i10 | 0;
29485 0 : i3 = i3 | 0;
29486 0 : i9 = i9 | 0;
29487 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i11 = 0, i12 = 0;
29488 0 : i1 = STACKTOP;
29489 0 : STACKTOP = STACKTOP + 16 | 0;
29490 0 : i7 = i1;
29491 0 : i4 = HEAP32[i10 + 48 >> 2] | 0;
29492 0 : i6 = HEAP32[i10 + 64 >> 2] | 0;
29493 0 : i2 = i6 + 12 | 0;
29494 0 : i5 = HEAP32[i2 >> 2] | 0;
29495 0 : i8 = HEAP8[i5 + (i3 << 4) + 12 | 0] | 0;
29496 0 : if ((i8 & 255) < (HEAPU8[i9 + 12 | 0] | 0)) {
29497 0 : i11 = HEAP32[i10 + 52 >> 2] | 0;
29498 0 : i12 = HEAP32[i5 + (i3 << 4) + 8 >> 2] | 0;
29499 0 : i8 = (HEAP32[(HEAP32[(HEAP32[i4 >> 2] | 0) + 24 >> 2] | 0) + ((HEAP16[(HEAP32[HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 64 >> 2] >> 2] | 0) + ((HEAP32[i4 + 40 >> 2] | 0) + (i8 & 255) << 1) >> 1] | 0) * 12 | 0) >> 2] | 0) + 16 | 0;
29500 0 : HEAP32[i7 >> 2] = (HEAP32[i5 + (i3 << 4) >> 2] | 0) + 16;
29501 0 : HEAP32[i7 + 4 >> 2] = i12;
29502 0 : HEAP32[i7 + 8 >> 2] = i8;
29503 0 : _semerror(i10, _luaO_pushfstring(i11, 6248, i7) | 0);
29504 0 : }
29505 0 : _luaK_patchlist(i4, HEAP32[i5 + (i3 << 4) + 4 >> 2] | 0, HEAP32[i9 + 4 >> 2] | 0);
29506 0 : i4 = i6 + 16 | 0;
29507 0 : i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
29508 0 : if ((i5 | 0) <= (i3 | 0)) {
29509 0 : i12 = i5;
29510 0 : HEAP32[i4 >> 2] = i12;
29511 0 : STACKTOP = i1;
29512 0 : return;
29513 0 : }
29514 0 : do {
29515 0 : i12 = HEAP32[i2 >> 2] | 0;
29516 0 : i5 = i12 + (i3 << 4) | 0;
29517 0 : i3 = i3 + 1 | 0;
29518 0 : i12 = i12 + (i3 << 4) | 0;
29519 0 : HEAP32[i5 + 0 >> 2] = HEAP32[i12 + 0 >> 2];
29520 0 : HEAP32[i5 + 4 >> 2] = HEAP32[i12 + 4 >> 2];
29521 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i12 + 8 >> 2];
29522 0 : HEAP32[i5 + 12 >> 2] = HEAP32[i12 + 12 >> 2];
29523 0 : i5 = (HEAP32[i4 >> 2] | 0) + -1 | 0;
29524 0 : } while ((i3 | 0) < (i5 | 0));
29525 0 : HEAP32[i4 >> 2] = i5;
29526 0 : STACKTOP = i1;
29527 0 : return;
29528 1 : }
29529 50 : function _luaM_growaux_(i4, i5, i1, i7, i8, i9) {
29530 50 : i4 = i4 | 0;
29531 50 : i5 = i5 | 0;
29532 50 : i1 = i1 | 0;
29533 50 : i7 = i7 | 0;
29534 50 : i8 = i8 | 0;
29535 50 : i9 = i9 | 0;
29536 50 : var i2 = 0, i3 = 0, i6 = 0, i10 = 0, i11 = 0;
29537 50 : i2 = STACKTOP;
29538 50 : STACKTOP = STACKTOP + 16 | 0;
29539 50 : i10 = i2;
29540 50 : i6 = HEAP32[i1 >> 2] | 0;
29541 50 : if ((i6 | 0) >= ((i8 | 0) / 2 | 0 | 0)) {
29542 50 : if ((i6 | 0) < (i8 | 0)) {
29543 50 : i3 = i8;
29544 50 : } else {
29545 50 : HEAP32[i10 >> 2] = i9;
29546 50 : HEAP32[i10 + 4 >> 2] = i8;
29547 50 : _luaG_runerror(i4, 4112, i10);
29548 50 : }
29549 50 : } else {
29550 50 : i3 = i6 << 1;
29551 50 : i3 = (i3 | 0) < 4 ? 4 : i3;
29552 50 : }
29553 50 : if ((i3 + 1 | 0) >>> 0 > (4294967293 / (i7 >>> 0) | 0) >>> 0) {
29554 50 : _luaM_toobig(i4);
29555 50 : }
29556 50 : i6 = Math_imul(i6, i7) | 0;
29557 50 : i8 = Math_imul(i3, i7) | 0;
29558 50 : i9 = HEAP32[i4 + 12 >> 2] | 0;
29559 50 : i7 = (i5 | 0) != 0;
29560 50 : i11 = i9 + 4 | 0;
29561 50 : i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
29562 50 : if ((i10 | 0) != 0 | (i8 | 0) == 0) {
29563 50 : i5 = i9 + 12 | 0;
29564 50 : i4 = HEAP32[i5 >> 2] | 0;
29565 50 : i6 = 0 - i6 | 0;
29566 50 : i11 = i7 ? i6 : 0;
29567 50 : i11 = i11 + i8 | 0;
29568 50 : i11 = i11 + i4 | 0;
29569 50 : HEAP32[i5 >> 2] = i11;
29570 50 : HEAP32[i1 >> 2] = i3;
29571 50 : STACKTOP = i2;
29572 50 : return i10 | 0;
29573 50 : }
29574 50 : if ((HEAP8[i9 + 63 | 0] | 0) == 0) {
29575 50 : _luaD_throw(i4, 4);
29576 50 : }
29577 50 : _luaC_fullgc(i4, 1);
29578 50 : i10 = FUNCTION_TABLE_iiiii[HEAP32[i9 >> 2] & 3](HEAP32[i11 >> 2] | 0, i5, i6, i8) | 0;
29579 50 : if ((i10 | 0) == 0) {
29580 50 : _luaD_throw(i4, 4);
29581 50 : } else {
29582 50 : i5 = i9 + 12 | 0;
29583 50 : i4 = HEAP32[i5 >> 2] | 0;
29584 50 : i6 = 0 - i6 | 0;
29585 50 : i11 = i7 ? i6 : 0;
29586 50 : i11 = i11 + i8 | 0;
29587 50 : i11 = i11 + i4 | 0;
29588 50 : HEAP32[i5 >> 2] = i11;
29589 50 : HEAP32[i1 >> 2] = i3;
29590 50 : STACKTOP = i2;
29591 50 : return i10 | 0;
29592 50 : }
29593 50 : return 0;
29594 50 : }
29595 1 : function _luaD_hook(i5, i14, i13) {
29596 0 : i5 = i5 | 0;
29597 0 : i14 = i14 | 0;
29598 0 : i13 = i13 | 0;
29599 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i15 = 0, i16 = 0;
29600 0 : i11 = STACKTOP;
29601 0 : STACKTOP = STACKTOP + 112 | 0;
29602 0 : i4 = i11;
29603 0 : i3 = HEAP32[i5 + 52 >> 2] | 0;
29604 0 : if ((i3 | 0) == 0) {
29605 0 : STACKTOP = i11;
29606 0 : return;
29607 0 : }
29608 0 : i8 = i5 + 41 | 0;
29609 0 : if ((HEAP8[i8] | 0) == 0) {
29610 0 : STACKTOP = i11;
29611 0 : return;
29612 0 : }
29613 0 : i10 = HEAP32[i5 + 16 >> 2] | 0;
29614 0 : i6 = i5 + 8 | 0;
29615 0 : i15 = HEAP32[i6 >> 2] | 0;
29616 0 : i1 = i5 + 28 | 0;
29617 0 : i16 = i15;
29618 0 : i12 = HEAP32[i1 >> 2] | 0;
29619 0 : i7 = i16 - i12 | 0;
29620 0 : i9 = i10 + 4 | 0;
29621 0 : i12 = (HEAP32[i9 >> 2] | 0) - i12 | 0;
29622 0 : HEAP32[i4 >> 2] = i14;
29623 0 : HEAP32[i4 + 20 >> 2] = i13;
29624 0 : HEAP32[i4 + 96 >> 2] = i10;
29625 0 : do {
29626 0 : if (((HEAP32[i5 + 24 >> 2] | 0) - i16 | 0) < 336) {
29627 0 : i14 = HEAP32[i5 + 32 >> 2] | 0;
29628 0 : if ((i14 | 0) > 1e6) {
29629 0 : _luaD_throw(i5, 6);
29630 0 : }
29631 0 : i13 = (i7 >> 4) + 25 | 0;
29632 0 : i14 = i14 << 1;
29633 0 : i14 = (i14 | 0) > 1e6 ? 1e6 : i14;
29634 0 : i13 = (i14 | 0) < (i13 | 0) ? i13 : i14;
29635 0 : if ((i13 | 0) > 1e6) {
29636 0 : _luaD_reallocstack(i5, 1000200);
29637 0 : _luaG_runerror(i5, 2224, i4);
29638 0 : } else {
29639 0 : _luaD_reallocstack(i5, i13);
29640 0 : i2 = HEAP32[i6 >> 2] | 0;
29641 0 : break;
29642 0 : }
29643 0 : } else {
29644 0 : i2 = i15;
29645 0 : }
29646 0 : } while (0);
29647 0 : HEAP32[i9 >> 2] = i2 + 320;
29648 0 : HEAP8[i8] = 0;
29649 0 : i16 = i10 + 18 | 0;
29650 0 : HEAP8[i16] = HEAPU8[i16] | 2;
29651 0 : FUNCTION_TABLE_vii[i3 & 15](i5, i4);
29652 0 : HEAP8[i8] = 1;
29653 0 : HEAP32[i9 >> 2] = (HEAP32[i1 >> 2] | 0) + i12;
29654 0 : HEAP32[i6 >> 2] = (HEAP32[i1 >> 2] | 0) + i7;
29655 0 : HEAP8[i16] = HEAP8[i16] & 253;
29656 0 : STACKTOP = i11;
29657 0 : return;
29658 1 : }
29659 19 : function _funcargs(i10, i2, i1) {
29660 19 : i10 = i10 | 0;
29661 19 : i2 = i2 | 0;
29662 19 : i1 = i1 | 0;
29663 19 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
29664 19 : i3 = STACKTOP;
29665 19 : STACKTOP = STACKTOP + 32 | 0;
29666 19 : i6 = i3;
29667 19 : i9 = i10 + 48 | 0;
29668 19 : i5 = HEAP32[i9 >> 2] | 0;
29669 19 : i7 = i10 + 16 | 0;
29670 19 : i8 = HEAP32[i7 >> 2] | 0;
29671 19 : if ((i8 | 0) == 289) {
29672 19 : i9 = _luaK_stringK(i5, HEAP32[i10 + 24 >> 2] | 0) | 0;
29673 19 : HEAP32[i6 + 16 >> 2] = -1;
29674 19 : HEAP32[i6 + 20 >> 2] = -1;
29675 19 : HEAP32[i6 >> 2] = 4;
29676 19 : HEAP32[i6 + 8 >> 2] = i9;
29677 19 : _luaX_next(i10);
29678 19 : } else if ((i8 | 0) == 40) {
29679 19 : _luaX_next(i10);
29680 19 : if ((HEAP32[i7 >> 2] | 0) == 41) {
29681 19 : HEAP32[i6 >> 2] = 0;
29682 19 : } else {
29683 19 : _subexpr(i10, i6, 0) | 0;
29684 19 : if ((HEAP32[i7 >> 2] | 0) == 44) {
29685 19 : do {
29686 19 : _luaX_next(i10);
29687 19 : _luaK_exp2nextreg(HEAP32[i9 >> 2] | 0, i6);
29688 19 : _subexpr(i10, i6, 0) | 0;
29689 19 : } while ((HEAP32[i7 >> 2] | 0) == 44);
29690 19 : }
29691 19 : _luaK_setreturns(i5, i6, -1);
29692 19 : }
29693 19 : _check_match(i10, 41, 40, i1);
29694 19 : } else if ((i8 | 0) == 123) {
29695 19 : _constructor(i10, i6);
29696 19 : } else {
29697 19 : _luaX_syntaxerror(i10, 6624);
29698 19 : }
29699 19 : i8 = i2 + 8 | 0;
29700 19 : i7 = HEAP32[i8 >> 2] | 0;
29701 19 : i9 = HEAP32[i6 >> 2] | 0;
29702 19 : if ((i9 | 0) == 0) {
29703 19 : i4 = 13;
29704 19 : } else if ((i9 | 0) == 13 | (i9 | 0) == 12) {
29705 19 : i6 = 0;
29706 19 : } else {
29707 19 : _luaK_exp2nextreg(i5, i6);
29708 19 : i4 = 13;
29709 19 : }
29710 19 : if ((i4 | 0) == 13) {
29711 19 : i6 = (HEAPU8[i5 + 48 | 0] | 0) - i7 | 0;
29712 19 : }
29713 19 : i10 = _luaK_codeABC(i5, 29, i7, i6, 2) | 0;
29714 19 : HEAP32[i2 + 16 >> 2] = -1;
29715 19 : HEAP32[i2 + 20 >> 2] = -1;
29716 19 : HEAP32[i2 >> 2] = 12;
29717 19 : HEAP32[i8 >> 2] = i10;
29718 19 : _luaK_fixline(i5, i1);
29719 19 : HEAP8[i5 + 48 | 0] = i7 + 1;
29720 19 : STACKTOP = i3;
29721 19 : return;
29722 19 : }
29723 27 : function _luaD_reallocstack(i3, i6) {
29724 27 : i3 = i3 | 0;
29725 27 : i6 = i6 | 0;
29726 27 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
29727 27 : i1 = STACKTOP;
29728 27 : i2 = i3 + 28 | 0;
29729 27 : i8 = HEAP32[i2 >> 2] | 0;
29730 27 : i7 = i3 + 32 | 0;
29731 27 : i9 = HEAP32[i7 >> 2] | 0;
29732 27 : if ((i6 + 1 | 0) >>> 0 > 268435455) {
29733 27 : _luaM_toobig(i3);
29734 27 : }
29735 27 : i5 = _luaM_realloc_(i3, i8, i9 << 4, i6 << 4) | 0;
29736 27 : HEAP32[i2 >> 2] = i5;
29737 27 : if ((i9 | 0) < (i6 | 0)) {
29738 27 : do {
29739 27 : HEAP32[i5 + (i9 << 4) + 8 >> 2] = 0;
29740 27 : i9 = i9 + 1 | 0;
29741 27 : } while ((i9 | 0) != (i6 | 0));
29742 27 : }
29743 27 : HEAP32[i7 >> 2] = i6;
29744 27 : HEAP32[i3 + 24 >> 2] = i5 + (i6 + -5 << 4);
29745 27 : i6 = i3 + 8 | 0;
29746 27 : HEAP32[i6 >> 2] = i5 + ((HEAP32[i6 >> 2] | 0) - i8 >> 4 << 4);
29747 27 : i6 = HEAP32[i3 + 56 >> 2] | 0;
29748 27 : if ((i6 | 0) != 0 ? (i4 = i6 + 8 | 0, HEAP32[i4 >> 2] = i5 + ((HEAP32[i4 >> 2] | 0) - i8 >> 4 << 4), i4 = HEAP32[i6 >> 2] | 0, (i4 | 0) != 0) : 0) {
29749 27 : do {
29750 27 : i9 = i4 + 8 | 0;
29751 27 : HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
29752 27 : i4 = HEAP32[i4 >> 2] | 0;
29753 27 : } while ((i4 | 0) != 0);
29754 27 : }
29755 27 : i3 = HEAP32[i3 + 16 >> 2] | 0;
29756 27 : if ((i3 | 0) == 0) {
29757 27 : STACKTOP = i1;
29758 27 : return;
29759 27 : }
29760 27 : do {
29761 27 : i9 = i3 + 4 | 0;
29762 27 : HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
29763 27 : HEAP32[i3 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i3 >> 2] | 0) - i8 >> 4 << 4);
29764 27 : if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
29765 27 : i9 = i3 + 24 | 0;
29766 27 : HEAP32[i9 >> 2] = (HEAP32[i2 >> 2] | 0) + ((HEAP32[i9 >> 2] | 0) - i8 >> 4 << 4);
29767 27 : }
29768 27 : i3 = HEAP32[i3 + 8 >> 2] | 0;
29769 27 : } while ((i3 | 0) != 0);
29770 27 : STACKTOP = i1;
29771 27 : return;
29772 27 : }
29773 2 : function _luaF_close(i7, i6) {
29774 2 : i7 = i7 | 0;
29775 2 : i6 = i6 | 0;
29776 2 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0;
29777 2 : i1 = STACKTOP;
29778 2 : i4 = HEAP32[i7 + 12 >> 2] | 0;
29779 2 : i3 = i7 + 56 | 0;
29780 2 : i8 = HEAP32[i3 >> 2] | 0;
29781 2 : if ((i8 | 0) == 0) {
29782 2 : STACKTOP = i1;
29783 2 : return;
29784 2 : }
29785 2 : i5 = i4 + 60 | 0;
29786 2 : i2 = i4 + 68 | 0;
29787 2 : while (1) {
29788 2 : i9 = i8 + 8 | 0;
29789 2 : if ((HEAP32[i9 >> 2] | 0) >>> 0 < i6 >>> 0) {
29790 2 : i2 = 10;
29791 2 : break;
29792 2 : }
29793 2 : HEAP32[i3 >> 2] = HEAP32[i8 >> 2];
29794 2 : if ((((HEAPU8[i5] | 0) ^ 3) & ((HEAPU8[i8 + 5 | 0] | 0) ^ 3) | 0) == 0) {
29795 2 : if ((HEAP32[i9 >> 2] | 0) != (i8 + 16 | 0)) {
29796 2 : i9 = i8 + 16 | 0;
29797 2 : i10 = i9 + 4 | 0;
29798 2 : HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i9 >> 2];
29799 2 : HEAP32[(HEAP32[i9 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
29800 2 : }
29801 2 : _luaM_realloc_(i7, i8, 32, 0) | 0;
29802 2 : } else {
29803 2 : i11 = i8 + 16 | 0;
29804 2 : i10 = i11 + 4 | 0;
29805 2 : HEAP32[(HEAP32[i10 >> 2] | 0) + 16 >> 2] = HEAP32[i11 >> 2];
29806 2 : HEAP32[(HEAP32[i11 >> 2] | 0) + 20 >> 2] = HEAP32[i10 >> 2];
29807 2 : i11 = HEAP32[i9 >> 2] | 0;
29808 2 : i10 = i8 + 16 | 0;
29809 2 : i14 = i11;
29810 2 : i13 = HEAP32[i14 + 4 >> 2] | 0;
29811 2 : i12 = i10;
29812 2 : HEAP32[i12 >> 2] = HEAP32[i14 >> 2];
29813 2 : HEAP32[i12 + 4 >> 2] = i13;
29814 2 : HEAP32[i8 + 24 >> 2] = HEAP32[i11 + 8 >> 2];
29815 2 : HEAP32[i9 >> 2] = i10;
29816 2 : HEAP32[i8 >> 2] = HEAP32[i2 >> 2];
29817 2 : HEAP32[i2 >> 2] = i8;
29818 2 : _luaC_checkupvalcolor(i4, i8);
29819 2 : }
29820 2 : i8 = HEAP32[i3 >> 2] | 0;
29821 2 : if ((i8 | 0) == 0) {
29822 2 : i2 = 10;
29823 2 : break;
29824 2 : }
29825 2 : }
29826 2 : if ((i2 | 0) == 10) {
29827 2 : STACKTOP = i1;
29828 2 : return;
29829 2 : }
29830 2 : }
29831 337 : function _luaK_dischargevars(i3, i1) {
29832 337 : i3 = i3 | 0;
29833 337 : i1 = i1 | 0;
29834 337 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0;
29835 337 : i2 = STACKTOP;
29836 337 : switch (HEAP32[i1 >> 2] | 0) {
29837 337 : case 12:
29838 337 : {
29839 337 : HEAP32[i1 >> 2] = 6;
29840 337 : i6 = i1 + 8 | 0;
29841 337 : HEAP32[i6 >> 2] = (HEAP32[(HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i6 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
29842 337 : STACKTOP = i2;
29843 337 : return;
29844 337 : }
29845 337 : case 13:
29846 337 : {
29847 337 : i6 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i1 + 8 >> 2] << 2) | 0;
29848 337 : HEAP32[i6 >> 2] = HEAP32[i6 >> 2] & 8388607 | 16777216;
29849 337 : HEAP32[i1 >> 2] = 11;
29850 337 : STACKTOP = i2;
29851 337 : return;
29852 337 : }
29853 337 : case 9:
29854 337 : {
29855 337 : i4 = i1 + 8 | 0;
29856 337 : i5 = HEAP16[i4 >> 1] | 0;
29857 337 : if ((i5 & 256 | 0) == 0 ? (HEAPU8[i3 + 46 | 0] | 0) <= (i5 | 0) : 0) {
29858 337 : i6 = i3 + 48 | 0;
29859 337 : HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
29860 337 : }
29861 337 : i5 = i4 + 2 | 0;
29862 337 : if ((HEAP8[i4 + 3 | 0] | 0) == 7) {
29863 337 : if ((HEAPU8[i3 + 46 | 0] | 0) > (HEAPU8[i5] | 0)) {
29864 337 : i6 = 7;
29865 337 : } else {
29866 337 : i6 = i3 + 48 | 0;
29867 337 : HEAP8[i6] = (HEAP8[i6] | 0) + -1 << 24 >> 24;
29868 337 : i6 = 7;
29869 337 : }
29870 337 : } else {
29871 337 : i6 = 6;
29872 337 : }
29873 337 : HEAP32[i4 >> 2] = _luaK_code(i3, HEAPU8[i5] << 23 | i6 | HEAP16[i4 >> 1] << 14) | 0;
29874 337 : HEAP32[i1 >> 2] = 11;
29875 337 : STACKTOP = i2;
29876 337 : return;
29877 337 : }
29878 337 : case 7:
29879 337 : {
29880 337 : HEAP32[i1 >> 2] = 6;
29881 337 : STACKTOP = i2;
29882 337 : return;
29883 337 : }
29884 337 : case 8:
29885 337 : {
29886 337 : i6 = i1 + 8 | 0;
29887 337 : HEAP32[i6 >> 2] = _luaK_code(i3, HEAP32[i6 >> 2] << 23 | 5) | 0;
29888 337 : HEAP32[i1 >> 2] = 11;
29889 337 : STACKTOP = i2;
29890 337 : return;
29891 337 : }
29892 337 : default:
29893 337 : {
29894 337 : STACKTOP = i2;
29895 337 : return;
29896 337 : }
29897 337 : }
29898 337 : }
29899 1 : function _gmatch_aux(i10) {
29900 0 : i10 = i10 | 0;
29901 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i11 = 0, i12 = 0;
29902 0 : i1 = STACKTOP;
29903 0 : STACKTOP = STACKTOP + 288 | 0;
29904 0 : i2 = i1 + 8 | 0;
29905 0 : i12 = i1 + 4 | 0;
29906 0 : i3 = i1;
29907 0 : i8 = _lua_tolstring(i10, -1001001, i12) | 0;
29908 0 : i7 = _lua_tolstring(i10, -1001002, i3) | 0;
29909 0 : i5 = i2 + 16 | 0;
29910 0 : HEAP32[i5 >> 2] = i10;
29911 0 : HEAP32[i2 >> 2] = 200;
29912 0 : HEAP32[i2 + 4 >> 2] = i8;
29913 0 : i9 = i2 + 8 | 0;
29914 0 : HEAP32[i9 >> 2] = i8 + (HEAP32[i12 >> 2] | 0);
29915 0 : HEAP32[i2 + 12 >> 2] = i7 + (HEAP32[i3 >> 2] | 0);
29916 0 : i3 = i8 + (_lua_tointegerx(i10, -1001003, 0) | 0) | 0;
29917 0 : if (i3 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
29918 0 : i12 = 0;
29919 0 : STACKTOP = i1;
29920 0 : return i12 | 0;
29921 0 : }
29922 0 : i11 = i2 + 20 | 0;
29923 0 : while (1) {
29924 0 : HEAP32[i11 >> 2] = 0;
29925 0 : i4 = _match(i2, i3, i7) | 0;
29926 0 : i12 = i3 + 1 | 0;
29927 0 : if ((i4 | 0) != 0) {
29928 0 : break;
29929 0 : }
29930 0 : if (i12 >>> 0 > (HEAP32[i9 >> 2] | 0) >>> 0) {
29931 0 : i2 = 0;
29932 0 : i6 = 7;
29933 0 : break;
29934 0 : } else {
29935 0 : i3 = i12;
29936 0 : }
29937 0 : }
29938 0 : if ((i6 | 0) == 7) {
29939 0 : STACKTOP = i1;
29940 0 : return i2 | 0;
29941 0 : }
29942 0 : _lua_pushinteger(i10, i4 - i8 + ((i4 | 0) == (i3 | 0)) | 0);
29943 0 : _lua_replace(i10, -1001003);
29944 0 : i7 = HEAP32[i11 >> 2] | 0;
29945 0 : i6 = (i7 | 0) != 0 | (i3 | 0) == 0 ? i7 : 1;
29946 0 : _luaL_checkstack(HEAP32[i5 >> 2] | 0, i6, 7200);
29947 0 : if ((i6 | 0) > 0) {
29948 0 : i5 = 0;
29949 0 : } else {
29950 0 : i12 = i7;
29951 0 : STACKTOP = i1;
29952 0 : return i12 | 0;
29953 0 : }
29954 0 : while (1) {
29955 0 : _push_onecapture(i2, i5, i3, i4);
29956 0 : i5 = i5 + 1 | 0;
29957 0 : if ((i5 | 0) == (i6 | 0)) {
29958 0 : i2 = i6;
29959 0 : break;
29960 0 : }
29961 0 : }
29962 0 : STACKTOP = i1;
29963 0 : return i2 | 0;
29964 1 : }
29965 7 : function _lua_rawseti(i1, i5, i3) {
29966 7 : i1 = i1 | 0;
29967 7 : i5 = i5 | 0;
29968 7 : i3 = i3 | 0;
29969 7 : var i2 = 0, i4 = 0, i6 = 0;
29970 7 : i2 = STACKTOP;
29971 7 : i6 = HEAP32[i1 + 16 >> 2] | 0;
29972 7 : do {
29973 7 : if ((i5 | 0) <= 0) {
29974 7 : if (!((i5 | 0) < -1000999)) {
29975 7 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
29976 7 : break;
29977 7 : }
29978 7 : if ((i5 | 0) == -1001e3) {
29979 7 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
29980 7 : break;
29981 7 : }
29982 7 : i5 = -1001e3 - i5 | 0;
29983 7 : i6 = HEAP32[i6 >> 2] | 0;
29984 7 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
29985 7 : i5 = i4 + (i5 + -1 << 4) + 16 | 0;
29986 7 : } else {
29987 7 : i5 = 5192;
29988 7 : }
29989 7 : } else {
29990 7 : i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
29991 7 : i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
29992 7 : }
29993 7 : } while (0);
29994 7 : i4 = i1 + 8 | 0;
29995 7 : _luaH_setint(i1, HEAP32[i5 >> 2] | 0, i3, (HEAP32[i4 >> 2] | 0) + -16 | 0);
29996 7 : i3 = HEAP32[i4 >> 2] | 0;
29997 7 : if ((HEAP32[i3 + -8 >> 2] & 64 | 0) == 0) {
29998 7 : i6 = i3;
29999 7 : i6 = i6 + -16 | 0;
30000 7 : HEAP32[i4 >> 2] = i6;
30001 7 : STACKTOP = i2;
30002 7 : return;
30003 7 : }
30004 7 : if ((HEAP8[(HEAP32[i3 + -16 >> 2] | 0) + 5 | 0] & 3) == 0) {
30005 7 : i6 = i3;
30006 7 : i6 = i6 + -16 | 0;
30007 7 : HEAP32[i4 >> 2] = i6;
30008 7 : STACKTOP = i2;
30009 7 : return;
30010 7 : }
30011 7 : i5 = HEAP32[i5 >> 2] | 0;
30012 7 : if ((HEAP8[i5 + 5 | 0] & 4) == 0) {
30013 7 : i6 = i3;
30014 7 : i6 = i6 + -16 | 0;
30015 7 : HEAP32[i4 >> 2] = i6;
30016 7 : STACKTOP = i2;
30017 7 : return;
30018 7 : }
30019 7 : _luaC_barrierback_(i1, i5);
30020 7 : i6 = HEAP32[i4 >> 2] | 0;
30021 7 : i6 = i6 + -16 | 0;
30022 7 : HEAP32[i4 >> 2] = i6;
30023 7 : STACKTOP = i2;
30024 7 : return;
30025 7 : }
30026 1 : function _ll_require(i1) {
30027 0 : i1 = i1 | 0;
30028 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
30029 0 : i2 = STACKTOP;
30030 0 : STACKTOP = STACKTOP + 1056 | 0;
30031 0 : i5 = i2;
30032 0 : i4 = i2 + 8 | 0;
30033 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
30034 0 : _lua_settop(i1, 1);
30035 0 : _lua_getfield(i1, -1001e3, 4576);
30036 0 : _lua_getfield(i1, 2, i3);
30037 0 : if ((_lua_toboolean(i1, -1) | 0) != 0) {
30038 0 : STACKTOP = i2;
30039 0 : return 1;
30040 0 : }
30041 0 : _lua_settop(i1, -2);
30042 0 : _luaL_buffinit(i1, i4);
30043 0 : _lua_getfield(i1, -1001001, 4240);
30044 0 : if ((_lua_type(i1, 3) | 0) == 5) {
30045 0 : i6 = 1;
30046 0 : } else {
30047 0 : _luaL_error(i1, 4656, i5) | 0;
30048 0 : i6 = 1;
30049 0 : }
30050 0 : while (1) {
30051 0 : _lua_rawgeti(i1, 3, i6);
30052 0 : if ((_lua_type(i1, -1) | 0) == 0) {
30053 0 : _lua_settop(i1, -2);
30054 0 : _luaL_pushresult(i4);
30055 0 : i7 = _lua_tolstring(i1, -1, 0) | 0;
30056 0 : HEAP32[i5 >> 2] = i3;
30057 0 : HEAP32[i5 + 4 >> 2] = i7;
30058 0 : _luaL_error(i1, 4696, i5) | 0;
30059 0 : }
30060 0 : _lua_pushstring(i1, i3) | 0;
30061 0 : _lua_callk(i1, 1, 2, 0, 0);
30062 0 : if ((_lua_type(i1, -2) | 0) == 6) {
30063 0 : break;
30064 0 : }
30065 0 : if ((_lua_isstring(i1, -2) | 0) == 0) {
30066 0 : _lua_settop(i1, -3);
30067 0 : } else {
30068 0 : _lua_settop(i1, -2);
30069 0 : _luaL_addvalue(i4);
30070 0 : }
30071 0 : i6 = i6 + 1 | 0;
30072 0 : }
30073 0 : _lua_pushstring(i1, i3) | 0;
30074 0 : _lua_insert(i1, -2);
30075 0 : _lua_callk(i1, 2, 1, 0, 0);
30076 0 : if ((_lua_type(i1, -1) | 0) != 0) {
30077 0 : _lua_setfield(i1, 2, i3);
30078 0 : }
30079 0 : _lua_getfield(i1, 2, i3);
30080 0 : if ((_lua_type(i1, -1) | 0) != 0) {
30081 0 : STACKTOP = i2;
30082 0 : return 1;
30083 0 : }
30084 0 : _lua_pushboolean(i1, 1);
30085 0 : _lua_pushvalue(i1, -1);
30086 0 : _lua_setfield(i1, 2, i3);
30087 0 : STACKTOP = i2;
30088 0 : return 1;
30089 1 : }
30090 1 : function _f_parser(i1, i3) {
30091 1 : i1 = i1 | 0;
30092 1 : i3 = i3 | 0;
30093 1 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
30094 1 : i2 = STACKTOP;
30095 1 : STACKTOP = STACKTOP + 16 | 0;
30096 1 : i4 = i2;
30097 1 : i5 = HEAP32[i3 >> 2] | 0;
30098 1 : i8 = HEAP32[i5 >> 2] | 0;
30099 1 : HEAP32[i5 >> 2] = i8 + -1;
30100 1 : if ((i8 | 0) == 0) {
30101 1 : i6 = _luaZ_fill(i5) | 0;
30102 1 : } else {
30103 1 : i8 = i5 + 4 | 0;
30104 1 : i6 = HEAP32[i8 >> 2] | 0;
30105 1 : HEAP32[i8 >> 2] = i6 + 1;
30106 1 : i6 = HEAPU8[i6] | 0;
30107 1 : }
30108 1 : i5 = HEAP32[i3 + 52 >> 2] | 0;
30109 1 : i7 = (i5 | 0) == 0;
30110 1 : if ((i6 | 0) == 27) {
30111 1 : if (!i7 ? (_strchr(i5, 98) | 0) == 0 : 0) {
30112 1 : HEAP32[i4 >> 2] = 2360;
30113 1 : HEAP32[i4 + 4 >> 2] = i5;
30114 1 : _luaO_pushfstring(i1, 2376, i4) | 0;
30115 1 : _luaD_throw(i1, 3);
30116 1 : }
30117 1 : i8 = _luaU_undump(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, HEAP32[i3 + 56 >> 2] | 0) | 0;
30118 1 : } else {
30119 1 : if (!i7 ? (_strchr(i5, 116) | 0) == 0 : 0) {
30120 1 : HEAP32[i4 >> 2] = 2368;
30121 1 : HEAP32[i4 + 4 >> 2] = i5;
30122 1 : _luaO_pushfstring(i1, 2376, i4) | 0;
30123 1 : _luaD_throw(i1, 3);
30124 1 : }
30125 1 : i8 = _luaY_parser(i1, HEAP32[i3 >> 2] | 0, i3 + 4 | 0, i3 + 16 | 0, HEAP32[i3 + 56 >> 2] | 0, i6) | 0;
30126 1 : }
30127 1 : i7 = i8 + 6 | 0;
30128 1 : if ((HEAP8[i7] | 0) == 0) {
30129 1 : STACKTOP = i2;
30130 1 : return;
30131 1 : }
30132 1 : i5 = i8 + 16 | 0;
30133 1 : i6 = i8 + 5 | 0;
30134 1 : i4 = 0;
30135 1 : do {
30136 1 : i3 = _luaF_newupval(i1) | 0;
30137 1 : HEAP32[i5 + (i4 << 2) >> 2] = i3;
30138 1 : if (!((HEAP8[i3 + 5 | 0] & 3) == 0) ? !((HEAP8[i6] & 4) == 0) : 0) {
30139 1 : _luaC_barrier_(i1, i8, i3);
30140 1 : }
30141 1 : i4 = i4 + 1 | 0;
30142 1 : } while ((i4 | 0) < (HEAPU8[i7] | 0));
30143 1 : STACKTOP = i2;
30144 1 : return;
30145 1 : }
30146 1 : function _str_rep(i9) {
30147 0 : i9 = i9 | 0;
30148 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0;
30149 0 : i6 = STACKTOP;
30150 0 : STACKTOP = STACKTOP + 1056 | 0;
30151 0 : i4 = i6;
30152 0 : i2 = i6 + 1044 | 0;
30153 0 : i3 = i6 + 1040 | 0;
30154 0 : i1 = _luaL_checklstring(i9, 1, i2) | 0;
30155 0 : i8 = _luaL_checkinteger(i9, 2) | 0;
30156 0 : i5 = _luaL_optlstring(i9, 3, 7040, i3) | 0;
30157 0 : if ((i8 | 0) < 1) {
30158 0 : _lua_pushlstring(i9, 7040, 0) | 0;
30159 0 : i12 = 1;
30160 0 : STACKTOP = i6;
30161 0 : return i12 | 0;
30162 0 : }
30163 0 : i7 = HEAP32[i2 >> 2] | 0;
30164 0 : i10 = HEAP32[i3 >> 2] | 0;
30165 0 : i11 = i10 + i7 | 0;
30166 0 : if (!(i11 >>> 0 < i7 >>> 0) ? i11 >>> 0 < (2147483647 / (i8 >>> 0) | 0) >>> 0 : 0) {
30167 0 : i7 = (Math_imul(i10, i8 + -1 | 0) | 0) + (Math_imul(i7, i8) | 0) | 0;
30168 0 : i11 = _luaL_buffinitsize(i9, i4, i7) | 0;
30169 0 : _memcpy(i11 | 0, i1 | 0, HEAP32[i2 >> 2] | 0) | 0;
30170 0 : if ((i8 | 0) > 1) {
30171 0 : while (1) {
30172 0 : i8 = i8 + -1 | 0;
30173 0 : i9 = HEAP32[i2 >> 2] | 0;
30174 0 : i10 = i11 + i9 | 0;
30175 0 : i12 = HEAP32[i3 >> 2] | 0;
30176 0 : if ((i12 | 0) == 0) {
30177 0 : i12 = i9;
30178 0 : } else {
30179 0 : _memcpy(i10 | 0, i5 | 0, i12 | 0) | 0;
30180 0 : i12 = HEAP32[i2 >> 2] | 0;
30181 0 : i10 = i11 + ((HEAP32[i3 >> 2] | 0) + i9) | 0;
30182 0 : }
30183 0 : _memcpy(i10 | 0, i1 | 0, i12 | 0) | 0;
30184 0 : if ((i8 | 0) <= 1) {
30185 0 : break;
30186 0 : } else {
30187 0 : i11 = i10;
30188 0 : }
30189 0 : }
30190 0 : }
30191 0 : _luaL_pushresultsize(i4, i7);
30192 0 : i12 = 1;
30193 0 : STACKTOP = i6;
30194 0 : return i12 | 0;
30195 0 : }
30196 0 : i12 = _luaL_error(i9, 7168, i4) | 0;
30197 0 : STACKTOP = i6;
30198 0 : return i12 | 0;
30199 1 : }
30200 2 : function ___strchrnul(i6, i2) {
30201 2 : i6 = i6 | 0;
30202 2 : i2 = i2 | 0;
30203 2 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
30204 2 : i1 = STACKTOP;
30205 2 : i3 = i2 & 255;
30206 2 : if ((i3 | 0) == 0) {
30207 2 : i7 = i6 + (_strlen(i6 | 0) | 0) | 0;
30208 2 : STACKTOP = i1;
30209 2 : return i7 | 0;
30210 2 : }
30211 2 : L5 : do {
30212 2 : if ((i6 & 3 | 0) != 0) {
30213 2 : i4 = i2 & 255;
30214 2 : while (1) {
30215 2 : i5 = HEAP8[i6] | 0;
30216 2 : if (i5 << 24 >> 24 == 0) {
30217 2 : i4 = i6;
30218 2 : i5 = 13;
30219 2 : break;
30220 2 : }
30221 2 : i7 = i6 + 1 | 0;
30222 2 : if (i5 << 24 >> 24 == i4 << 24 >> 24) {
30223 2 : i4 = i6;
30224 2 : i5 = 13;
30225 2 : break;
30226 2 : }
30227 2 : if ((i7 & 3 | 0) == 0) {
30228 2 : i4 = i7;
30229 2 : break L5;
30230 2 : } else {
30231 2 : i6 = i7;
30232 2 : }
30233 2 : }
30234 2 : if ((i5 | 0) == 13) {
30235 2 : STACKTOP = i1;
30236 2 : return i4 | 0;
30237 2 : }
30238 2 : } else {
30239 2 : i4 = i6;
30240 2 : }
30241 2 : } while (0);
30242 2 : i3 = Math_imul(i3, 16843009) | 0;
30243 2 : i6 = HEAP32[i4 >> 2] | 0;
30244 2 : L15 : do {
30245 2 : if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
30246 2 : while (1) {
30247 2 : i7 = i6 ^ i3;
30248 2 : i5 = i4 + 4 | 0;
30249 2 : if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
30250 2 : break L15;
30251 2 : }
30252 2 : i6 = HEAP32[i5 >> 2] | 0;
30253 2 : if (((i6 & -2139062144 ^ -2139062144) & i6 + -16843009 | 0) == 0) {
30254 2 : i4 = i5;
30255 2 : } else {
30256 2 : i4 = i5;
30257 2 : break;
30258 2 : }
30259 2 : }
30260 2 : }
30261 2 : } while (0);
30262 2 : i2 = i2 & 255;
30263 2 : while (1) {
30264 2 : i7 = HEAP8[i4] | 0;
30265 2 : if (i7 << 24 >> 24 == 0 | i7 << 24 >> 24 == i2 << 24 >> 24) {
30266 2 : break;
30267 2 : } else {
30268 2 : i4 = i4 + 1 | 0;
30269 2 : }
30270 2 : }
30271 2 : STACKTOP = i1;
30272 2 : return i4 | 0;
30273 2 : }
30274 1 : function _lua_replace(i2, i6) {
30275 0 : i2 = i2 | 0;
30276 0 : i6 = i6 | 0;
30277 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
30278 0 : i3 = STACKTOP;
30279 0 : i7 = i2 + 8 | 0;
30280 0 : i9 = HEAP32[i7 >> 2] | 0;
30281 0 : i5 = i9 + -16 | 0;
30282 0 : i4 = i2 + 16 | 0;
30283 0 : i12 = HEAP32[i4 >> 2] | 0;
30284 0 : do {
30285 0 : if ((i6 | 0) <= 0) {
30286 0 : if (!((i6 | 0) < -1000999)) {
30287 0 : i10 = i9 + (i6 << 4) | 0;
30288 0 : break;
30289 0 : }
30290 0 : if ((i6 | 0) == -1001e3) {
30291 0 : i10 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
30292 0 : break;
30293 0 : }
30294 0 : i11 = -1001e3 - i6 | 0;
30295 0 : i12 = HEAP32[i12 >> 2] | 0;
30296 0 : if ((HEAP32[i12 + 8 >> 2] | 0) != 22 ? (i10 = HEAP32[i12 >> 2] | 0, (i11 | 0) <= (HEAPU8[i10 + 6 | 0] | 0 | 0)) : 0) {
30297 0 : i10 = i10 + (i11 + -1 << 4) + 16 | 0;
30298 0 : } else {
30299 0 : i10 = 5192;
30300 0 : }
30301 0 : } else {
30302 0 : i10 = (HEAP32[i12 >> 2] | 0) + (i6 << 4) | 0;
30303 0 : i10 = i10 >>> 0 < i9 >>> 0 ? i10 : 5192;
30304 0 : }
30305 0 : } while (0);
30306 0 : i13 = i5;
30307 0 : i11 = HEAP32[i13 + 4 >> 2] | 0;
30308 0 : i12 = i10;
30309 0 : HEAP32[i12 >> 2] = HEAP32[i13 >> 2];
30310 0 : HEAP32[i12 + 4 >> 2] = i11;
30311 0 : i9 = i9 + -8 | 0;
30312 0 : HEAP32[i10 + 8 >> 2] = HEAP32[i9 >> 2];
30313 0 : if ((((i6 | 0) < -1001e3 ? (HEAP32[i9 >> 2] & 64 | 0) != 0 : 0) ? (i1 = HEAP32[i5 >> 2] | 0, !((HEAP8[i1 + 5 | 0] & 3) == 0)) : 0) ? (i8 = HEAP32[HEAP32[HEAP32[i4 >> 2] >> 2] >> 2] | 0, !((HEAP8[i8 + 5 | 0] & 4) == 0)) : 0) {
30314 0 : _luaC_barrier_(i2, i8, i1);
30315 0 : }
30316 0 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
30317 0 : STACKTOP = i3;
30318 0 : return;
30319 1 : }
30320 77 : function _memchr(i4, i3, i6) {
30321 77 : i4 = i4 | 0;
30322 77 : i3 = i3 | 0;
30323 77 : i6 = i6 | 0;
30324 77 : var i1 = 0, i2 = 0, i5 = 0, i7 = 0;
30325 77 : i1 = STACKTOP;
30326 77 : i2 = i3 & 255;
30327 77 : i7 = (i6 | 0) == 0;
30328 77 : L1 : do {
30329 77 : if ((i4 & 3 | 0) == 0 | i7) {
30330 77 : i5 = i6;
30331 77 : i6 = 5;
30332 77 : } else {
30333 77 : i5 = i3 & 255;
30334 77 : while (1) {
30335 77 : if ((HEAP8[i4] | 0) == i5 << 24 >> 24) {
30336 77 : i5 = i6;
30337 77 : i6 = 6;
30338 77 : break L1;
30339 77 : }
30340 77 : i4 = i4 + 1 | 0;
30341 77 : i6 = i6 + -1 | 0;
30342 77 : i7 = (i6 | 0) == 0;
30343 77 : if ((i4 & 3 | 0) == 0 | i7) {
30344 77 : i5 = i6;
30345 77 : i6 = 5;
30346 77 : break;
30347 77 : }
30348 77 : }
30349 77 : }
30350 77 : } while (0);
30351 77 : if ((i6 | 0) == 5) {
30352 77 : if (i7) {
30353 77 : i5 = 0;
30354 77 : } else {
30355 77 : i6 = 6;
30356 77 : }
30357 77 : }
30358 77 : L8 : do {
30359 77 : if ((i6 | 0) == 6) {
30360 77 : i3 = i3 & 255;
30361 77 : if (!((HEAP8[i4] | 0) == i3 << 24 >> 24)) {
30362 77 : i2 = Math_imul(i2, 16843009) | 0;
30363 77 : L11 : do {
30364 77 : if (i5 >>> 0 > 3) {
30365 77 : do {
30366 77 : i7 = HEAP32[i4 >> 2] ^ i2;
30367 77 : if (((i7 & -2139062144 ^ -2139062144) & i7 + -16843009 | 0) != 0) {
30368 77 : break L11;
30369 77 : }
30370 77 : i4 = i4 + 4 | 0;
30371 77 : i5 = i5 + -4 | 0;
30372 77 : } while (i5 >>> 0 > 3);
30373 77 : }
30374 77 : } while (0);
30375 77 : if ((i5 | 0) == 0) {
30376 77 : i5 = 0;
30377 77 : } else {
30378 77 : while (1) {
30379 77 : if ((HEAP8[i4] | 0) == i3 << 24 >> 24) {
30380 77 : break L8;
30381 77 : }
30382 77 : i4 = i4 + 1 | 0;
30383 77 : i5 = i5 + -1 | 0;
30384 77 : if ((i5 | 0) == 0) {
30385 77 : i5 = 0;
30386 77 : break;
30387 77 : }
30388 77 : }
30389 77 : }
30390 77 : }
30391 77 : }
30392 77 : } while (0);
30393 77 : STACKTOP = i1;
30394 77 : return ((i5 | 0) != 0 ? i4 : 0) | 0;
30395 77 : }
30396 2 : function _lua_insert(i2, i5) {
30397 2 : i2 = i2 | 0;
30398 2 : i5 = i5 | 0;
30399 2 : var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0, i8 = 0;
30400 2 : i1 = STACKTOP;
30401 2 : i4 = HEAP32[i2 + 16 >> 2] | 0;
30402 2 : do {
30403 2 : if ((i5 | 0) <= 0) {
30404 2 : if (!((i5 | 0) < -1000999)) {
30405 2 : i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
30406 2 : break;
30407 2 : }
30408 2 : if ((i5 | 0) == -1001e3) {
30409 2 : i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
30410 2 : break;
30411 2 : }
30412 2 : i5 = -1001e3 - i5 | 0;
30413 2 : i4 = HEAP32[i4 >> 2] | 0;
30414 2 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
30415 2 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
30416 2 : } else {
30417 2 : i3 = 5192;
30418 2 : }
30419 2 : } else {
30420 2 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
30421 2 : i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
30422 2 : }
30423 2 : } while (0);
30424 2 : i2 = i2 + 8 | 0;
30425 2 : i4 = HEAP32[i2 >> 2] | 0;
30426 2 : if (i4 >>> 0 > i3 >>> 0) {
30427 2 : while (1) {
30428 2 : i5 = i4 + -16 | 0;
30429 2 : i8 = i5;
30430 2 : i7 = HEAP32[i8 + 4 >> 2] | 0;
30431 2 : i6 = i4;
30432 2 : HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
30433 2 : HEAP32[i6 + 4 >> 2] = i7;
30434 2 : HEAP32[i4 + 8 >> 2] = HEAP32[i4 + -8 >> 2];
30435 2 : if (i5 >>> 0 > i3 >>> 0) {
30436 2 : i4 = i5;
30437 2 : } else {
30438 2 : break;
30439 2 : }
30440 2 : }
30441 2 : i4 = HEAP32[i2 >> 2] | 0;
30442 2 : }
30443 2 : i6 = i4;
30444 2 : i7 = HEAP32[i6 + 4 >> 2] | 0;
30445 2 : i8 = i3;
30446 2 : HEAP32[i8 >> 2] = HEAP32[i6 >> 2];
30447 2 : HEAP32[i8 + 4 >> 2] = i7;
30448 2 : HEAP32[i3 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
30449 2 : STACKTOP = i1;
30450 2 : return;
30451 2 : }
30452 1 : function _findlocal(i6, i4, i1, i2) {
30453 0 : i6 = i6 | 0;
30454 0 : i4 = i4 | 0;
30455 0 : i1 = i1 | 0;
30456 0 : i2 = i2 | 0;
30457 0 : var i3 = 0, i5 = 0, i7 = 0, i8 = 0;
30458 0 : i3 = STACKTOP;
30459 0 : do {
30460 0 : if ((HEAP8[i4 + 18 | 0] & 1) == 0) {
30461 0 : i7 = (HEAP32[i4 >> 2] | 0) + 16 | 0;
30462 0 : i5 = 7;
30463 0 : } else {
30464 0 : if ((i1 | 0) >= 0) {
30465 0 : i8 = HEAP32[i4 + 24 >> 2] | 0;
30466 0 : i7 = HEAP32[(HEAP32[HEAP32[i4 >> 2] >> 2] | 0) + 12 >> 2] | 0;
30467 0 : i7 = _luaF_getlocalname(i7, i1, ((HEAP32[i4 + 28 >> 2] | 0) - (HEAP32[i7 + 12 >> 2] | 0) >> 2) + -1 | 0) | 0;
30468 0 : if ((i7 | 0) == 0) {
30469 0 : i7 = i8;
30470 0 : i5 = 7;
30471 0 : break;
30472 0 : } else {
30473 0 : break;
30474 0 : }
30475 0 : }
30476 0 : i5 = HEAP32[i4 >> 2] | 0;
30477 0 : i6 = HEAPU8[(HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] | 0) + 76 | 0] | 0;
30478 0 : if ((((HEAP32[i4 + 24 >> 2] | 0) - i5 >> 4) - i6 | 0) <= (0 - i1 | 0)) {
30479 0 : i8 = 0;
30480 0 : STACKTOP = i3;
30481 0 : return i8 | 0;
30482 0 : }
30483 0 : HEAP32[i2 >> 2] = i5 + (i6 - i1 << 4);
30484 0 : i8 = 2208;
30485 0 : STACKTOP = i3;
30486 0 : return i8 | 0;
30487 0 : }
30488 0 : } while (0);
30489 0 : if ((i5 | 0) == 7) {
30490 0 : if ((HEAP32[i6 + 16 >> 2] | 0) == (i4 | 0)) {
30491 0 : i4 = i6 + 8 | 0;
30492 0 : } else {
30493 0 : i4 = HEAP32[i4 + 12 >> 2] | 0;
30494 0 : }
30495 0 : if (((HEAP32[i4 >> 2] | 0) - i7 >> 4 | 0) >= (i1 | 0) & (i1 | 0) > 0) {
30496 0 : i8 = i7;
30497 0 : i7 = 2192;
30498 0 : } else {
30499 0 : i8 = 0;
30500 0 : STACKTOP = i3;
30501 0 : return i8 | 0;
30502 0 : }
30503 0 : }
30504 0 : HEAP32[i2 >> 2] = i8 + (i1 + -1 << 4);
30505 0 : i8 = i7;
30506 0 : STACKTOP = i3;
30507 0 : return i8 | 0;
30508 1 : }
30509 284095 : function _luaH_setint(i4, i5, i6, i1) {
30510 284095 : i4 = i4 | 0;
30511 284095 : i5 = i5 | 0;
30512 284095 : i6 = i6 | 0;
30513 284095 : i1 = i1 | 0;
30514 284095 : var i2 = 0, i3 = 0, d7 = 0.0, i8 = 0, i9 = 0;
30515 284095 : i2 = STACKTOP;
30516 284095 : STACKTOP = STACKTOP + 32 | 0;
30517 284095 : i8 = i2 + 16 | 0;
30518 284095 : i3 = i2;
30519 284095 : i9 = i6 + -1 | 0;
30520 284095 : L1 : do {
30521 284095 : if (i9 >>> 0 < (HEAP32[i5 + 28 >> 2] | 0) >>> 0) {
30522 284095 : i9 = (HEAP32[i5 + 12 >> 2] | 0) + (i9 << 4) | 0;
30523 284095 : i8 = 10;
30524 284095 : } else {
30525 284095 : d7 = +(i6 | 0);
30526 284095 : HEAPF64[i8 >> 3] = d7 + 1.0;
30527 284095 : i8 = (HEAP32[i8 + 4 >> 2] | 0) + (HEAP32[i8 >> 2] | 0) | 0;
30528 284095 : if ((i8 | 0) < 0) {
30529 284095 : i9 = 0 - i8 | 0;
30530 284095 : i8 = (i8 | 0) == (i9 | 0) ? 0 : i9;
30531 284095 : }
30532 284095 : i9 = (HEAP32[i5 + 16 >> 2] | 0) + (((i8 | 0) % ((1 << (HEAPU8[i5 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
30533 284095 : while (1) {
30534 284095 : if ((HEAP32[i9 + 24 >> 2] | 0) == 3 ? +HEAPF64[i9 + 16 >> 3] == d7 : 0) {
30535 284095 : break;
30536 284095 : }
30537 284095 : i9 = HEAP32[i9 + 28 >> 2] | 0;
30538 284095 : if ((i9 | 0) == 0) {
30539 284095 : i8 = 12;
30540 284095 : break L1;
30541 284095 : }
30542 284095 : }
30543 284095 : i8 = 10;
30544 284095 : }
30545 284095 : } while (0);
30546 284095 : if ((i8 | 0) == 10) {
30547 284095 : if ((i9 | 0) == 5192) {
30548 284095 : d7 = +(i6 | 0);
30549 284095 : i8 = 12;
30550 284095 : }
30551 284095 : }
30552 284095 : if ((i8 | 0) == 12) {
30553 284095 : HEAPF64[i3 >> 3] = d7;
30554 284095 : HEAP32[i3 + 8 >> 2] = 3;
30555 284095 : i9 = _luaH_newkey(i4, i5, i3) | 0;
30556 284095 : }
30557 284095 : i5 = i1;
30558 284095 : i6 = HEAP32[i5 + 4 >> 2] | 0;
30559 284095 : i8 = i9;
30560 284095 : HEAP32[i8 >> 2] = HEAP32[i5 >> 2];
30561 284095 : HEAP32[i8 + 4 >> 2] = i6;
30562 284095 : HEAP32[i9 + 8 >> 2] = HEAP32[i1 + 8 >> 2];
30563 284095 : STACKTOP = i2;
30564 284095 : return;
30565 284095 : }
30566 13 : function _lua_tounsignedx(i6, i8, i1) {
30567 13 : i6 = i6 | 0;
30568 13 : i8 = i8 | 0;
30569 13 : i1 = i1 | 0;
30570 13 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
30571 13 : i2 = STACKTOP;
30572 13 : STACKTOP = STACKTOP + 32 | 0;
30573 13 : i4 = i2 + 8 | 0;
30574 13 : i3 = i2;
30575 13 : i7 = HEAP32[i6 + 16 >> 2] | 0;
30576 13 : do {
30577 13 : if ((i8 | 0) <= 0) {
30578 13 : if (!((i8 | 0) < -1000999)) {
30579 13 : i5 = (HEAP32[i6 + 8 >> 2] | 0) + (i8 << 4) | 0;
30580 13 : break;
30581 13 : }
30582 13 : if ((i8 | 0) == -1001e3) {
30583 13 : i5 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
30584 13 : break;
30585 13 : }
30586 13 : i6 = -1001e3 - i8 | 0;
30587 13 : i7 = HEAP32[i7 >> 2] | 0;
30588 13 : if ((HEAP32[i7 + 8 >> 2] | 0) != 22 ? (i5 = HEAP32[i7 >> 2] | 0, (i6 | 0) <= (HEAPU8[i5 + 6 | 0] | 0 | 0)) : 0) {
30589 13 : i5 = i5 + (i6 + -1 << 4) + 16 | 0;
30590 13 : } else {
30591 13 : i5 = 5192;
30592 13 : }
30593 13 : } else {
30594 13 : i5 = (HEAP32[i7 >> 2] | 0) + (i8 << 4) | 0;
30595 13 : i5 = i5 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i5 : 5192;
30596 13 : }
30597 13 : } while (0);
30598 13 : if ((HEAP32[i5 + 8 >> 2] | 0) != 3) {
30599 13 : i5 = _luaV_tonumber(i5, i4) | 0;
30600 13 : if ((i5 | 0) == 0) {
30601 13 : if ((i1 | 0) == 0) {
30602 13 : i8 = 0;
30603 13 : STACKTOP = i2;
30604 13 : return i8 | 0;
30605 13 : }
30606 13 : HEAP32[i1 >> 2] = 0;
30607 13 : i8 = 0;
30608 13 : STACKTOP = i2;
30609 13 : return i8 | 0;
30610 13 : }
30611 13 : }
30612 13 : HEAPF64[i3 >> 3] = +HEAPF64[i5 >> 3] + 6755399441055744.0;
30613 13 : i3 = HEAP32[i3 >> 2] | 0;
30614 13 : if ((i1 | 0) == 0) {
30615 13 : i8 = i3;
30616 13 : STACKTOP = i2;
30617 13 : return i8 | 0;
30618 13 : }
30619 13 : HEAP32[i1 >> 2] = 1;
30620 13 : i8 = i3;
30621 13 : STACKTOP = i2;
30622 13 : return i8 | 0;
30623 13 : }
30624 1 : function _luaC_freeallobjects(i1) {
30625 1 : i1 = i1 | 0;
30626 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
30627 1 : i2 = STACKTOP;
30628 1 : i5 = i1 + 12 | 0;
30629 1 : i3 = HEAP32[i5 >> 2] | 0;
30630 1 : i7 = i3 + 104 | 0;
30631 1 : while (1) {
30632 1 : i4 = HEAP32[i7 >> 2] | 0;
30633 1 : if ((i4 | 0) == 0) {
30634 1 : break;
30635 1 : } else {
30636 1 : i7 = i4;
30637 1 : }
30638 1 : }
30639 1 : i4 = i3 + 72 | 0;
30640 1 : i6 = HEAP32[i4 >> 2] | 0;
30641 1 : if ((i6 | 0) == 0) {
30642 1 : i5 = i3;
30643 1 : } else {
30644 1 : while (1) {
30645 1 : i8 = i6 + 5 | 0;
30646 1 : HEAP8[i8] = HEAPU8[i8] | 0 | 8;
30647 1 : HEAP32[i4 >> 2] = HEAP32[i6 >> 2];
30648 1 : HEAP32[i6 >> 2] = HEAP32[i7 >> 2];
30649 1 : HEAP32[i7 >> 2] = i6;
30650 1 : i7 = HEAP32[i4 >> 2] | 0;
30651 1 : if ((i7 | 0) == 0) {
30652 1 : break;
30653 1 : } else {
30654 1 : i8 = i6;
30655 1 : i6 = i7;
30656 1 : i7 = i8;
30657 1 : }
30658 1 : }
30659 1 : i5 = HEAP32[i5 >> 2] | 0;
30660 1 : }
30661 1 : i5 = i5 + 104 | 0;
30662 1 : i6 = HEAP32[i5 >> 2] | 0;
30663 1 : if ((i6 | 0) != 0) {
30664 1 : do {
30665 1 : i8 = i6 + 5 | 0;
30666 1 : HEAP8[i8] = HEAP8[i8] & 191;
30667 1 : _GCTM(i1, 0);
30668 1 : i6 = HEAP32[i5 >> 2] | 0;
30669 1 : } while ((i6 | 0) != 0);
30670 1 : }
30671 1 : HEAP8[i3 + 60 | 0] = 3;
30672 1 : HEAP8[i3 + 62 | 0] = 0;
30673 1 : _sweeplist(i1, i4, -3) | 0;
30674 1 : _sweeplist(i1, i3 + 68 | 0, -3) | 0;
30675 1 : i4 = i3 + 32 | 0;
30676 1 : if ((HEAP32[i4 >> 2] | 0) <= 0) {
30677 1 : STACKTOP = i2;
30678 1 : return;
30679 1 : }
30680 1 : i3 = i3 + 24 | 0;
30681 1 : i5 = 0;
30682 1 : do {
30683 1 : _sweeplist(i1, (HEAP32[i3 >> 2] | 0) + (i5 << 2) | 0, -3) | 0;
30684 1 : i5 = i5 + 1 | 0;
30685 1 : } while ((i5 | 0) < (HEAP32[i4 >> 2] | 0));
30686 1 : STACKTOP = i2;
30687 1 : return;
30688 1 : }
30689 1 : function _strspn(i1, i5) {
30690 0 : i1 = i1 | 0;
30691 0 : i5 = i5 | 0;
30692 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
30693 0 : i2 = STACKTOP;
30694 0 : STACKTOP = STACKTOP + 32 | 0;
30695 0 : i3 = i2;
30696 0 : HEAP32[i3 + 0 >> 2] = 0;
30697 0 : HEAP32[i3 + 4 >> 2] = 0;
30698 0 : HEAP32[i3 + 8 >> 2] = 0;
30699 0 : HEAP32[i3 + 12 >> 2] = 0;
30700 0 : HEAP32[i3 + 16 >> 2] = 0;
30701 0 : HEAP32[i3 + 20 >> 2] = 0;
30702 0 : HEAP32[i3 + 24 >> 2] = 0;
30703 0 : HEAP32[i3 + 28 >> 2] = 0;
30704 0 : i4 = HEAP8[i5] | 0;
30705 0 : if (i4 << 24 >> 24 == 0) {
30706 0 : i6 = 0;
30707 0 : STACKTOP = i2;
30708 0 : return i6 | 0;
30709 0 : }
30710 0 : if ((HEAP8[i5 + 1 | 0] | 0) == 0) {
30711 0 : i3 = i1;
30712 0 : while (1) {
30713 0 : if ((HEAP8[i3] | 0) == i4 << 24 >> 24) {
30714 0 : i3 = i3 + 1 | 0;
30715 0 : } else {
30716 0 : break;
30717 0 : }
30718 0 : }
30719 0 : i6 = i3 - i1 | 0;
30720 0 : STACKTOP = i2;
30721 0 : return i6 | 0;
30722 0 : }
30723 0 : do {
30724 0 : i7 = i4 & 255;
30725 0 : i6 = i3 + (i7 >>> 5 << 2) | 0;
30726 0 : HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
30727 0 : i5 = i5 + 1 | 0;
30728 0 : i4 = HEAP8[i5] | 0;
30729 0 : } while (!(i4 << 24 >> 24 == 0));
30730 0 : i5 = HEAP8[i1] | 0;
30731 0 : L12 : do {
30732 0 : if (i5 << 24 >> 24 == 0) {
30733 0 : i4 = i1;
30734 0 : } else {
30735 0 : i4 = i1;
30736 0 : while (1) {
30737 0 : i7 = i5 & 255;
30738 0 : i6 = i4 + 1 | 0;
30739 0 : if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) == 0) {
30740 0 : break L12;
30741 0 : }
30742 0 : i5 = HEAP8[i6] | 0;
30743 0 : if (i5 << 24 >> 24 == 0) {
30744 0 : i4 = i6;
30745 0 : break;
30746 0 : } else {
30747 0 : i4 = i6;
30748 0 : }
30749 0 : }
30750 0 : }
30751 0 : } while (0);
30752 0 : i7 = i4 - i1 | 0;
30753 0 : STACKTOP = i2;
30754 0 : return i7 | 0;
30755 1 : }
30756 2 : function _lua_remove(i2, i4) {
30757 2 : i2 = i2 | 0;
30758 2 : i4 = i4 | 0;
30759 2 : var i1 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0;
30760 2 : i1 = STACKTOP;
30761 2 : i5 = HEAP32[i2 + 16 >> 2] | 0;
30762 2 : do {
30763 2 : if ((i4 | 0) <= 0) {
30764 2 : if (!((i4 | 0) < -1000999)) {
30765 2 : i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
30766 2 : break;
30767 2 : }
30768 2 : if ((i4 | 0) == -1001e3) {
30769 2 : i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
30770 2 : break;
30771 2 : }
30772 2 : i4 = -1001e3 - i4 | 0;
30773 2 : i5 = HEAP32[i5 >> 2] | 0;
30774 2 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
30775 2 : i3 = i3 + (i4 + -1 << 4) + 16 | 0;
30776 2 : } else {
30777 2 : i3 = 5192;
30778 2 : }
30779 2 : } else {
30780 2 : i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
30781 2 : i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
30782 2 : }
30783 2 : } while (0);
30784 2 : i4 = i3 + 16 | 0;
30785 2 : i2 = i2 + 8 | 0;
30786 2 : i5 = HEAP32[i2 >> 2] | 0;
30787 2 : if (!(i4 >>> 0 < i5 >>> 0)) {
30788 2 : i5 = i5 + -16 | 0;
30789 2 : HEAP32[i2 >> 2] = i5;
30790 2 : STACKTOP = i1;
30791 2 : return;
30792 2 : }
30793 2 : while (1) {
30794 2 : i7 = i4;
30795 2 : i6 = HEAP32[i7 + 4 >> 2] | 0;
30796 2 : i5 = i3;
30797 2 : HEAP32[i5 >> 2] = HEAP32[i7 >> 2];
30798 2 : HEAP32[i5 + 4 >> 2] = i6;
30799 2 : HEAP32[i3 + 8 >> 2] = HEAP32[i3 + 24 >> 2];
30800 2 : i5 = i4 + 16 | 0;
30801 2 : i3 = HEAP32[i2 >> 2] | 0;
30802 2 : if (i5 >>> 0 < i3 >>> 0) {
30803 2 : i3 = i4;
30804 2 : i4 = i5;
30805 2 : } else {
30806 2 : break;
30807 2 : }
30808 2 : }
30809 2 : i7 = i3 + -16 | 0;
30810 2 : HEAP32[i2 >> 2] = i7;
30811 2 : STACKTOP = i1;
30812 2 : return;
30813 2 : }
30814 1 : function _luaD_protectedparser(i1, i4, i3, i2) {
30815 1 : i1 = i1 | 0;
30816 1 : i4 = i4 | 0;
30817 1 : i3 = i3 | 0;
30818 1 : i2 = i2 | 0;
30819 1 : var i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0;
30820 1 : i5 = STACKTOP;
30821 1 : STACKTOP = STACKTOP + 64 | 0;
30822 1 : i13 = i5;
30823 1 : i6 = i1 + 36 | 0;
30824 1 : HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + 1 << 16 >> 16;
30825 1 : HEAP32[i13 >> 2] = i4;
30826 1 : HEAP32[i13 + 56 >> 2] = i3;
30827 1 : HEAP32[i13 + 52 >> 2] = i2;
30828 1 : i10 = i13 + 16 | 0;
30829 1 : HEAP32[i10 >> 2] = 0;
30830 1 : i9 = i13 + 24 | 0;
30831 1 : HEAP32[i9 >> 2] = 0;
30832 1 : i8 = i13 + 28 | 0;
30833 1 : HEAP32[i8 >> 2] = 0;
30834 1 : i7 = i13 + 36 | 0;
30835 1 : HEAP32[i7 >> 2] = 0;
30836 1 : i2 = i13 + 40 | 0;
30837 1 : HEAP32[i2 >> 2] = 0;
30838 1 : i3 = i13 + 48 | 0;
30839 1 : HEAP32[i3 >> 2] = 0;
30840 1 : i12 = i13 + 4 | 0;
30841 1 : HEAP32[i12 >> 2] = 0;
30842 1 : i11 = i13 + 12 | 0;
30843 1 : HEAP32[i11 >> 2] = 0;
30844 1 : i4 = _luaD_pcall(i1, 6, i13, (HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) | 0, HEAP32[i1 + 68 >> 2] | 0) | 0;
30845 1 : HEAP32[i12 >> 2] = _luaM_realloc_(i1, HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0, 0) | 0;
30846 1 : HEAP32[i11 >> 2] = 0;
30847 1 : _luaM_realloc_(i1, HEAP32[i10 >> 2] | 0, HEAP32[i9 >> 2] << 1, 0) | 0;
30848 1 : _luaM_realloc_(i1, HEAP32[i8 >> 2] | 0, HEAP32[i7 >> 2] << 4, 0) | 0;
30849 1 : _luaM_realloc_(i1, HEAP32[i2 >> 2] | 0, HEAP32[i3 >> 2] << 4, 0) | 0;
30850 1 : HEAP16[i6 >> 1] = (HEAP16[i6 >> 1] | 0) + -1 << 16 >> 16;
30851 1 : STACKTOP = i5;
30852 1 : return i4 | 0;
30853 1 : }
30854 44 : function _markmt(i1) {
30855 44 : i1 = i1 | 0;
30856 44 : var i2 = 0, i3 = 0;
30857 44 : i2 = STACKTOP;
30858 44 : i3 = HEAP32[i1 + 252 >> 2] | 0;
30859 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30860 44 : _reallymarkobject(i1, i3);
30861 44 : }
30862 44 : i3 = HEAP32[i1 + 256 >> 2] | 0;
30863 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30864 44 : _reallymarkobject(i1, i3);
30865 44 : }
30866 44 : i3 = HEAP32[i1 + 260 >> 2] | 0;
30867 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30868 44 : _reallymarkobject(i1, i3);
30869 44 : }
30870 44 : i3 = HEAP32[i1 + 264 >> 2] | 0;
30871 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30872 44 : _reallymarkobject(i1, i3);
30873 44 : }
30874 44 : i3 = HEAP32[i1 + 268 >> 2] | 0;
30875 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30876 44 : _reallymarkobject(i1, i3);
30877 44 : }
30878 44 : i3 = HEAP32[i1 + 272 >> 2] | 0;
30879 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30880 44 : _reallymarkobject(i1, i3);
30881 44 : }
30882 44 : i3 = HEAP32[i1 + 276 >> 2] | 0;
30883 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30884 44 : _reallymarkobject(i1, i3);
30885 44 : }
30886 44 : i3 = HEAP32[i1 + 280 >> 2] | 0;
30887 44 : if ((i3 | 0) != 0 ? !((HEAP8[i3 + 5 | 0] & 3) == 0) : 0) {
30888 44 : _reallymarkobject(i1, i3);
30889 44 : }
30890 44 : i3 = HEAP32[i1 + 284 >> 2] | 0;
30891 44 : if ((i3 | 0) == 0) {
30892 44 : STACKTOP = i2;
30893 44 : return;
30894 44 : }
30895 44 : if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
30896 44 : STACKTOP = i2;
30897 44 : return;
30898 44 : }
30899 44 : _reallymarkobject(i1, i3);
30900 44 : STACKTOP = i2;
30901 44 : return;
30902 44 : }
30903 1 : function _findlabel(i9, i2) {
30904 0 : i9 = i9 | 0;
30905 0 : i2 = i2 | 0;
30906 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0;
30907 0 : i1 = STACKTOP;
30908 0 : i3 = i9 + 48 | 0;
30909 0 : i7 = HEAP32[(HEAP32[i3 >> 2] | 0) + 16 >> 2] | 0;
30910 0 : i10 = HEAP32[i9 + 64 >> 2] | 0;
30911 0 : i4 = HEAP32[i10 + 12 >> 2] | 0;
30912 0 : i6 = i7 + 4 | 0;
30913 0 : i13 = HEAP16[i6 >> 1] | 0;
30914 0 : i5 = i10 + 28 | 0;
30915 0 : if ((i13 | 0) >= (HEAP32[i5 >> 2] | 0)) {
30916 0 : i15 = 0;
30917 0 : STACKTOP = i1;
30918 0 : return i15 | 0;
30919 0 : }
30920 0 : i10 = i10 + 24 | 0;
30921 0 : i11 = i4 + (i2 << 4) | 0;
30922 0 : while (1) {
30923 0 : i14 = HEAP32[i10 >> 2] | 0;
30924 0 : i12 = i14 + (i13 << 4) | 0;
30925 0 : i15 = i13 + 1 | 0;
30926 0 : if ((_luaS_eqstr(HEAP32[i12 >> 2] | 0, HEAP32[i11 >> 2] | 0) | 0) != 0) {
30927 0 : break;
30928 0 : }
30929 0 : if ((i15 | 0) < (HEAP32[i5 >> 2] | 0)) {
30930 0 : i13 = i15;
30931 0 : } else {
30932 0 : i2 = 0;
30933 0 : i8 = 10;
30934 0 : break;
30935 0 : }
30936 0 : }
30937 0 : if ((i8 | 0) == 10) {
30938 0 : STACKTOP = i1;
30939 0 : return i2 | 0;
30940 0 : }
30941 0 : i8 = HEAP8[i14 + (i13 << 4) + 12 | 0] | 0;
30942 0 : do {
30943 0 : if ((HEAPU8[i4 + (i2 << 4) + 12 | 0] | 0) > (i8 & 255)) {
30944 0 : if ((HEAP8[i7 + 9 | 0] | 0) == 0 ? (HEAP32[i5 >> 2] | 0) <= (HEAP16[i6 >> 1] | 0) : 0) {
30945 0 : break;
30946 0 : }
30947 0 : _luaK_patchclose(HEAP32[i3 >> 2] | 0, HEAP32[i4 + (i2 << 4) + 4 >> 2] | 0, i8 & 255);
30948 0 : }
30949 0 : } while (0);
30950 0 : _closegoto(i9, i2, i12);
30951 0 : i15 = 1;
30952 0 : STACKTOP = i1;
30953 0 : return i15 | 0;
30954 1 : }
30955 9 : function _lua_getmetatable(i1, i5) {
30956 9 : i1 = i1 | 0;
30957 9 : i5 = i5 | 0;
30958 9 : var i2 = 0, i3 = 0, i4 = 0;
30959 9 : i2 = STACKTOP;
30960 9 : i4 = HEAP32[i1 + 16 >> 2] | 0;
30961 9 : do {
30962 9 : if ((i5 | 0) <= 0) {
30963 9 : if (!((i5 | 0) < -1000999)) {
30964 9 : i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
30965 9 : break;
30966 9 : }
30967 9 : if ((i5 | 0) == -1001e3) {
30968 9 : i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
30969 9 : break;
30970 9 : }
30971 9 : i5 = -1001e3 - i5 | 0;
30972 9 : i4 = HEAP32[i4 >> 2] | 0;
30973 9 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
30974 9 : i4 = i3 + (i5 + -1 << 4) + 16 | 0;
30975 9 : } else {
30976 9 : i4 = 5192;
30977 9 : }
30978 9 : } else {
30979 9 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
30980 9 : i4 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
30981 9 : }
30982 9 : } while (0);
30983 9 : i3 = HEAP32[i4 + 8 >> 2] & 15;
30984 9 : if ((i3 | 0) == 7) {
30985 9 : i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
30986 9 : } else if ((i3 | 0) == 5) {
30987 9 : i3 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
30988 9 : } else {
30989 9 : i3 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 252 >> 2] | 0;
30990 9 : }
30991 9 : if ((i3 | 0) == 0) {
30992 9 : i5 = 0;
30993 9 : STACKTOP = i2;
30994 9 : return i5 | 0;
30995 9 : }
30996 9 : i5 = i1 + 8 | 0;
30997 9 : i4 = HEAP32[i5 >> 2] | 0;
30998 9 : HEAP32[i4 >> 2] = i3;
30999 9 : HEAP32[i4 + 8 >> 2] = 69;
31000 9 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
31001 9 : i5 = 1;
31002 9 : STACKTOP = i2;
31003 9 : return i5 | 0;
31004 9 : }
31005 1 : function _str_byte(i2) {
31006 0 : i2 = i2 | 0;
31007 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
31008 0 : i1 = STACKTOP;
31009 0 : STACKTOP = STACKTOP + 16 | 0;
31010 0 : i6 = i1;
31011 0 : i4 = i1 + 4 | 0;
31012 0 : i3 = _luaL_checklstring(i2, 1, i4) | 0;
31013 0 : i5 = _luaL_optinteger(i2, 2, 1) | 0;
31014 0 : i7 = HEAP32[i4 >> 2] | 0;
31015 0 : if (!((i5 | 0) > -1)) {
31016 0 : if (i7 >>> 0 < (0 - i5 | 0) >>> 0) {
31017 0 : i5 = 0;
31018 0 : } else {
31019 0 : i5 = i5 + 1 + i7 | 0;
31020 0 : }
31021 0 : }
31022 0 : i8 = _luaL_optinteger(i2, 3, i5) | 0;
31023 0 : i7 = HEAP32[i4 >> 2] | 0;
31024 0 : if (!((i8 | 0) > -1)) {
31025 0 : if (i7 >>> 0 < (0 - i8 | 0) >>> 0) {
31026 0 : i8 = 0;
31027 0 : } else {
31028 0 : i8 = i8 + 1 + i7 | 0;
31029 0 : }
31030 0 : }
31031 0 : i9 = (i5 | 0) == 0 ? 1 : i5;
31032 0 : i10 = i8 >>> 0 > i7 >>> 0 ? i7 : i8;
31033 0 : if (i9 >>> 0 > i10 >>> 0) {
31034 0 : i10 = 0;
31035 0 : STACKTOP = i1;
31036 0 : return i10 | 0;
31037 0 : }
31038 0 : i4 = i10 - i9 + 1 | 0;
31039 0 : if ((i10 | 0) == -1) {
31040 0 : i10 = _luaL_error(i2, 7944, i6) | 0;
31041 0 : STACKTOP = i1;
31042 0 : return i10 | 0;
31043 0 : }
31044 0 : _luaL_checkstack(i2, i4, 7944);
31045 0 : if ((i4 | 0) <= 0) {
31046 0 : i10 = i4;
31047 0 : STACKTOP = i1;
31048 0 : return i10 | 0;
31049 0 : }
31050 0 : i6 = i9 + -1 | 0;
31051 0 : i8 = ~i8;
31052 0 : i7 = ~i7;
31053 0 : i5 = 0 - (i8 >>> 0 > i7 >>> 0 ? i8 : i7) - (i5 >>> 0 > 1 ? i5 : 1) | 0;
31054 0 : i7 = 0;
31055 0 : do {
31056 0 : _lua_pushinteger(i2, HEAPU8[i3 + (i6 + i7) | 0] | 0);
31057 0 : i7 = i7 + 1 | 0;
31058 0 : } while ((i7 | 0) != (i5 | 0));
31059 0 : STACKTOP = i1;
31060 0 : return i4 | 0;
31061 1 : }
31062 1 : function _lua_setuservalue(i1, i5) {
31063 0 : i1 = i1 | 0;
31064 0 : i5 = i5 | 0;
31065 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
31066 0 : i3 = STACKTOP;
31067 0 : i6 = HEAP32[i1 + 16 >> 2] | 0;
31068 0 : do {
31069 0 : if ((i5 | 0) <= 0) {
31070 0 : if (!((i5 | 0) < -1000999)) {
31071 0 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
31072 0 : break;
31073 0 : }
31074 0 : if ((i5 | 0) == -1001e3) {
31075 0 : i5 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
31076 0 : break;
31077 0 : }
31078 0 : i5 = -1001e3 - i5 | 0;
31079 0 : i6 = HEAP32[i6 >> 2] | 0;
31080 0 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
31081 0 : i5 = i4 + (i5 + -1 << 4) + 16 | 0;
31082 0 : } else {
31083 0 : i5 = 5192;
31084 0 : }
31085 0 : } else {
31086 0 : i4 = (HEAP32[i6 >> 2] | 0) + (i5 << 4) | 0;
31087 0 : i5 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
31088 0 : }
31089 0 : } while (0);
31090 0 : i4 = i1 + 8 | 0;
31091 0 : i6 = HEAP32[i4 >> 2] | 0;
31092 0 : if ((HEAP32[i6 + -8 >> 2] | 0) != 0) {
31093 0 : HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = HEAP32[i6 + -16 >> 2];
31094 0 : i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + -16 >> 2] | 0;
31095 0 : if (!((HEAP8[i6 + 5 | 0] & 3) == 0) ? (i2 = HEAP32[i5 >> 2] | 0, !((HEAP8[i2 + 5 | 0] & 4) == 0)) : 0) {
31096 0 : _luaC_barrier_(i1, i2, i6);
31097 0 : }
31098 0 : } else {
31099 0 : HEAP32[(HEAP32[i5 >> 2] | 0) + 12 >> 2] = 0;
31100 0 : }
31101 0 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
31102 0 : STACKTOP = i3;
31103 0 : return;
31104 1 : }
31105 1 : function _f_luaopen(i1, i2) {
31106 1 : i1 = i1 | 0;
31107 1 : i2 = i2 | 0;
31108 1 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
31109 1 : i6 = STACKTOP;
31110 1 : STACKTOP = STACKTOP + 16 | 0;
31111 1 : i5 = i6;
31112 1 : i4 = HEAP32[i1 + 12 >> 2] | 0;
31113 1 : i2 = _luaM_realloc_(i1, 0, 0, 640) | 0;
31114 1 : HEAP32[i1 + 28 >> 2] = i2;
31115 1 : i3 = i1 + 32 | 0;
31116 1 : HEAP32[i3 >> 2] = 40;
31117 1 : i7 = 0;
31118 1 : do {
31119 1 : HEAP32[i2 + (i7 << 4) + 8 >> 2] = 0;
31120 1 : i7 = i7 + 1 | 0;
31121 1 : } while ((i7 | 0) != 40);
31122 1 : HEAP32[i1 + 24 >> 2] = i2 + ((HEAP32[i3 >> 2] | 0) + -5 << 4);
31123 1 : i7 = i1 + 72 | 0;
31124 1 : HEAP32[i1 + 80 >> 2] = 0;
31125 1 : HEAP32[i1 + 84 >> 2] = 0;
31126 1 : HEAP8[i1 + 90 | 0] = 0;
31127 1 : HEAP32[i7 >> 2] = i2;
31128 1 : HEAP32[i1 + 8 >> 2] = i2 + 16;
31129 1 : HEAP32[i2 + 8 >> 2] = 0;
31130 1 : HEAP32[i1 + 76 >> 2] = i2 + 336;
31131 1 : HEAP32[i1 + 16 >> 2] = i7;
31132 1 : i7 = _luaH_new(i1) | 0;
31133 1 : HEAP32[i4 + 40 >> 2] = i7;
31134 1 : HEAP32[i4 + 48 >> 2] = 69;
31135 1 : _luaH_resize(i1, i7, 2, 0);
31136 1 : HEAP32[i5 >> 2] = i1;
31137 1 : i3 = i5 + 8 | 0;
31138 1 : HEAP32[i3 >> 2] = 72;
31139 1 : _luaH_setint(i1, i7, 1, i5);
31140 1 : HEAP32[i5 >> 2] = _luaH_new(i1) | 0;
31141 1 : HEAP32[i3 >> 2] = 69;
31142 1 : _luaH_setint(i1, i7, 2, i5);
31143 1 : _luaS_resize(i1, 32);
31144 1 : _luaT_init(i1);
31145 1 : _luaX_init(i1);
31146 1 : i7 = _luaS_newlstr(i1, 6896, 17) | 0;
31147 1 : HEAP32[i4 + 180 >> 2] = i7;
31148 1 : i7 = i7 + 5 | 0;
31149 1 : HEAP8[i7] = HEAPU8[i7] | 0 | 32;
31150 1 : HEAP8[i4 + 63 | 0] = 1;
31151 1 : STACKTOP = i6;
31152 1 : return;
31153 1 : }
31154 15 : function _lua_tointegerx(i6, i7, i1) {
31155 15 : i6 = i6 | 0;
31156 15 : i7 = i7 | 0;
31157 15 : i1 = i1 | 0;
31158 15 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
31159 15 : i2 = STACKTOP;
31160 15 : STACKTOP = STACKTOP + 16 | 0;
31161 15 : i3 = i2;
31162 15 : i5 = HEAP32[i6 + 16 >> 2] | 0;
31163 15 : do {
31164 15 : if ((i7 | 0) <= 0) {
31165 15 : if (!((i7 | 0) < -1000999)) {
31166 15 : i4 = (HEAP32[i6 + 8 >> 2] | 0) + (i7 << 4) | 0;
31167 15 : break;
31168 15 : }
31169 15 : if ((i7 | 0) == -1001e3) {
31170 15 : i4 = (HEAP32[i6 + 12 >> 2] | 0) + 40 | 0;
31171 15 : break;
31172 15 : }
31173 15 : i6 = -1001e3 - i7 | 0;
31174 15 : i5 = HEAP32[i5 >> 2] | 0;
31175 15 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
31176 15 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
31177 15 : } else {
31178 15 : i4 = 5192;
31179 15 : }
31180 15 : } else {
31181 15 : i4 = (HEAP32[i5 >> 2] | 0) + (i7 << 4) | 0;
31182 15 : i4 = i4 >>> 0 < (HEAP32[i6 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
31183 15 : }
31184 15 : } while (0);
31185 15 : if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
31186 15 : i4 = _luaV_tonumber(i4, i3) | 0;
31187 15 : if ((i4 | 0) == 0) {
31188 15 : if ((i1 | 0) == 0) {
31189 15 : i7 = 0;
31190 15 : STACKTOP = i2;
31191 15 : return i7 | 0;
31192 15 : }
31193 15 : HEAP32[i1 >> 2] = 0;
31194 15 : i7 = 0;
31195 15 : STACKTOP = i2;
31196 15 : return i7 | 0;
31197 15 : }
31198 15 : }
31199 15 : i3 = ~~+HEAPF64[i4 >> 3];
31200 15 : if ((i1 | 0) == 0) {
31201 15 : i7 = i3;
31202 15 : STACKTOP = i2;
31203 15 : return i7 | 0;
31204 15 : }
31205 15 : HEAP32[i1 >> 2] = 1;
31206 15 : i7 = i3;
31207 15 : STACKTOP = i2;
31208 15 : return i7 | 0;
31209 15 : }
31210 1 : function _close_state(i1) {
31211 1 : i1 = i1 | 0;
31212 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
31213 1 : i2 = STACKTOP;
31214 1 : i6 = i1 + 12 | 0;
31215 1 : i3 = HEAP32[i6 >> 2] | 0;
31216 1 : i4 = i1 + 28 | 0;
31217 1 : _luaF_close(i1, HEAP32[i4 >> 2] | 0);
31218 1 : _luaC_freeallobjects(i1);
31219 1 : i6 = HEAP32[i6 >> 2] | 0;
31220 1 : _luaM_realloc_(i1, HEAP32[i6 + 24 >> 2] | 0, HEAP32[i6 + 32 >> 2] << 2, 0) | 0;
31221 1 : i6 = i3 + 144 | 0;
31222 1 : i5 = i3 + 152 | 0;
31223 1 : HEAP32[i6 >> 2] = _luaM_realloc_(i1, HEAP32[i6 >> 2] | 0, HEAP32[i5 >> 2] | 0, 0) | 0;
31224 1 : HEAP32[i5 >> 2] = 0;
31225 1 : i5 = HEAP32[i4 >> 2] | 0;
31226 1 : if ((i5 | 0) == 0) {
31227 1 : i5 = HEAP32[i3 >> 2] | 0;
31228 1 : i6 = i3 + 4 | 0;
31229 1 : i6 = HEAP32[i6 >> 2] | 0;
31230 1 : FUNCTION_TABLE_iiiii[i5 & 3](i6, i1, 400, 0) | 0;
31231 1 : STACKTOP = i2;
31232 1 : return;
31233 1 : }
31234 1 : HEAP32[i1 + 16 >> 2] = i1 + 72;
31235 1 : i7 = i1 + 84 | 0;
31236 1 : i6 = HEAP32[i7 >> 2] | 0;
31237 1 : HEAP32[i7 >> 2] = 0;
31238 1 : if ((i6 | 0) != 0) {
31239 1 : while (1) {
31240 1 : i5 = HEAP32[i6 + 12 >> 2] | 0;
31241 1 : _luaM_realloc_(i1, i6, 40, 0) | 0;
31242 1 : if ((i5 | 0) == 0) {
31243 1 : break;
31244 1 : } else {
31245 1 : i6 = i5;
31246 1 : }
31247 1 : }
31248 1 : i5 = HEAP32[i4 >> 2] | 0;
31249 1 : }
31250 1 : _luaM_realloc_(i1, i5, HEAP32[i1 + 32 >> 2] << 4, 0) | 0;
31251 1 : i6 = HEAP32[i3 >> 2] | 0;
31252 1 : i7 = i3 + 4 | 0;
31253 1 : i7 = HEAP32[i7 >> 2] | 0;
31254 1 : FUNCTION_TABLE_iiiii[i6 & 3](i7, i1, 400, 0) | 0;
31255 1 : STACKTOP = i2;
31256 1 : return;
31257 1 : }
31258 1 : function _ll_module(i1) {
31259 0 : i1 = i1 | 0;
31260 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
31261 0 : i2 = STACKTOP;
31262 0 : STACKTOP = STACKTOP + 112 | 0;
31263 0 : i4 = i2;
31264 0 : i5 = i2 + 4 | 0;
31265 0 : i6 = _luaL_checklstring(i1, 1, 0) | 0;
31266 0 : i3 = _lua_gettop(i1) | 0;
31267 0 : _luaL_pushmodule(i1, i6, 1);
31268 0 : _lua_getfield(i1, -1, 4728);
31269 0 : i7 = (_lua_type(i1, -1) | 0) == 0;
31270 0 : _lua_settop(i1, -2);
31271 0 : if (i7) {
31272 0 : _lua_pushvalue(i1, -1);
31273 0 : _lua_setfield(i1, -2, 4784);
31274 0 : _lua_pushstring(i1, i6) | 0;
31275 0 : _lua_setfield(i1, -2, 4728);
31276 0 : i7 = _strrchr(i6, 46) | 0;
31277 0 : _lua_pushlstring(i1, i6, ((i7 | 0) == 0 ? i6 : i7 + 1 | 0) - i6 | 0) | 0;
31278 0 : _lua_setfield(i1, -2, 4792);
31279 0 : }
31280 0 : _lua_pushvalue(i1, -1);
31281 0 : if (!(((_lua_getstack(i1, 1, i5) | 0) != 0 ? (_lua_getinfo(i1, 4736, i5) | 0) != 0 : 0) ? (_lua_iscfunction(i1, -1) | 0) == 0 : 0)) {
31282 0 : _luaL_error(i1, 4744, i4) | 0;
31283 0 : }
31284 0 : _lua_pushvalue(i1, -2);
31285 0 : _lua_setupvalue(i1, -2, 1) | 0;
31286 0 : _lua_settop(i1, -2);
31287 0 : if ((i3 | 0) < 2) {
31288 0 : STACKTOP = i2;
31289 0 : return 1;
31290 0 : } else {
31291 0 : i4 = 2;
31292 0 : }
31293 0 : while (1) {
31294 0 : if ((_lua_type(i1, i4) | 0) == 6) {
31295 0 : _lua_pushvalue(i1, i4);
31296 0 : _lua_pushvalue(i1, -2);
31297 0 : _lua_callk(i1, 1, 0, 0, 0);
31298 0 : }
31299 0 : if ((i4 | 0) == (i3 | 0)) {
31300 0 : break;
31301 0 : } else {
31302 0 : i4 = i4 + 1 | 0;
31303 0 : }
31304 0 : }
31305 0 : STACKTOP = i2;
31306 0 : return 1;
31307 1 : }
31308 70 : function _strcspn(i2, i5) {
31309 70 : i2 = i2 | 0;
31310 70 : i5 = i5 | 0;
31311 70 : var i1 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
31312 70 : i1 = STACKTOP;
31313 70 : STACKTOP = STACKTOP + 32 | 0;
31314 70 : i3 = i1;
31315 70 : i4 = HEAP8[i5] | 0;
31316 70 : if (!(i4 << 24 >> 24 == 0) ? (HEAP8[i5 + 1 | 0] | 0) != 0 : 0) {
31317 70 : HEAP32[i3 + 0 >> 2] = 0;
31318 70 : HEAP32[i3 + 4 >> 2] = 0;
31319 70 : HEAP32[i3 + 8 >> 2] = 0;
31320 70 : HEAP32[i3 + 12 >> 2] = 0;
31321 70 : HEAP32[i3 + 16 >> 2] = 0;
31322 70 : HEAP32[i3 + 20 >> 2] = 0;
31323 70 : HEAP32[i3 + 24 >> 2] = 0;
31324 70 : HEAP32[i3 + 28 >> 2] = 0;
31325 70 : do {
31326 70 : i7 = i4 & 255;
31327 70 : i6 = i3 + (i7 >>> 5 << 2) | 0;
31328 70 : HEAP32[i6 >> 2] = HEAP32[i6 >> 2] | 1 << (i7 & 31);
31329 70 : i5 = i5 + 1 | 0;
31330 70 : i4 = HEAP8[i5] | 0;
31331 70 : } while (!(i4 << 24 >> 24 == 0));
31332 70 : i5 = HEAP8[i2] | 0;
31333 70 : L7 : do {
31334 70 : if (i5 << 24 >> 24 == 0) {
31335 70 : i4 = i2;
31336 70 : } else {
31337 70 : i4 = i2;
31338 70 : while (1) {
31339 70 : i7 = i5 & 255;
31340 70 : i6 = i4 + 1 | 0;
31341 70 : if ((HEAP32[i3 + (i7 >>> 5 << 2) >> 2] & 1 << (i7 & 31) | 0) != 0) {
31342 70 : break L7;
31343 70 : }
31344 70 : i5 = HEAP8[i6] | 0;
31345 70 : if (i5 << 24 >> 24 == 0) {
31346 70 : i4 = i6;
31347 70 : break;
31348 70 : } else {
31349 70 : i4 = i6;
31350 70 : }
31351 70 : }
31352 70 : }
31353 70 : } while (0);
31354 70 : i7 = i4 - i2 | 0;
31355 70 : STACKTOP = i1;
31356 70 : return i7 | 0;
31357 70 : }
31358 70 : i7 = (___strchrnul(i2, i4 << 24 >> 24) | 0) - i2 | 0;
31359 70 : STACKTOP = i1;
31360 70 : return i7 | 0;
31361 70 : }
31362 1 : function _main(i4, i5) {
31363 1 : i4 = i4 | 0;
31364 1 : i5 = i5 | 0;
31365 1 : var i1 = 0, i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
31366 1 : i1 = STACKTOP;
31367 1 : STACKTOP = STACKTOP + 16 | 0;
31368 1 : i2 = i1;
31369 1 : i3 = _luaL_newstate() | 0;
31370 1 : if ((i3 | 0) == 0) {
31371 1 : i4 = HEAP32[i5 >> 2] | 0;
31372 1 : i3 = HEAP32[_stderr >> 2] | 0;
31373 1 : if ((i4 | 0) != 0) {
31374 1 : HEAP32[i2 >> 2] = i4;
31375 1 : _fprintf(i3 | 0, 496, i2 | 0) | 0;
31376 1 : _fflush(i3 | 0) | 0;
31377 1 : }
31378 1 : HEAP32[i2 >> 2] = 8;
31379 1 : _fprintf(i3 | 0, 912, i2 | 0) | 0;
31380 1 : _fflush(i3 | 0) | 0;
31381 1 : i8 = 1;
31382 1 : STACKTOP = i1;
31383 1 : return i8 | 0;
31384 1 : }
31385 1 : _lua_pushcclosure(i3, 141, 0);
31386 1 : _lua_pushinteger(i3, i4);
31387 1 : _lua_pushlightuserdata(i3, i5);
31388 1 : i6 = _lua_pcallk(i3, 2, 1, 0, 0, 0) | 0;
31389 1 : i7 = _lua_toboolean(i3, -1) | 0;
31390 1 : i6 = (i6 | 0) == 0;
31391 1 : if (!i6) {
31392 1 : if ((_lua_type(i3, -1) | 0) == 4) {
31393 1 : i8 = _lua_tolstring(i3, -1, 0) | 0;
31394 1 : } else {
31395 1 : i8 = 0;
31396 1 : }
31397 1 : i4 = HEAP32[20] | 0;
31398 1 : i5 = HEAP32[_stderr >> 2] | 0;
31399 1 : if ((i4 | 0) != 0) {
31400 1 : HEAP32[i2 >> 2] = i4;
31401 1 : _fprintf(i5 | 0, 496, i2 | 0) | 0;
31402 1 : _fflush(i5 | 0) | 0;
31403 1 : }
31404 1 : HEAP32[i2 >> 2] = (i8 | 0) == 0 ? 48 : i8;
31405 1 : _fprintf(i5 | 0, 912, i2 | 0) | 0;
31406 1 : _fflush(i5 | 0) | 0;
31407 1 : _lua_settop(i3, -2);
31408 1 : }
31409 1 : _lua_close(i3);
31410 1 : i8 = i6 & (i7 | 0) != 0 & 1 ^ 1;
31411 1 : STACKTOP = i1;
31412 1 : return i8 | 0;
31413 1 : }
31414 1 : function _db_sethook(i1) {
31415 0 : i1 = i1 | 0;
31416 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
31417 0 : i4 = STACKTOP;
31418 0 : if ((_lua_type(i1, 1) | 0) == 8) {
31419 0 : i2 = _lua_tothread(i1, 1) | 0;
31420 0 : i5 = 1;
31421 0 : } else {
31422 0 : i2 = i1;
31423 0 : i5 = 0;
31424 0 : }
31425 0 : i3 = i5 + 1 | 0;
31426 0 : if ((_lua_type(i1, i3) | 0) < 1) {
31427 0 : _lua_settop(i1, i3);
31428 0 : i6 = 0;
31429 0 : i7 = 0;
31430 0 : i5 = 0;
31431 0 : } else {
31432 0 : i6 = _luaL_checklstring(i1, i5 | 2, 0) | 0;
31433 0 : _luaL_checktype(i1, i3, 6);
31434 0 : i5 = _luaL_optinteger(i1, i5 + 3 | 0, 0) | 0;
31435 0 : i7 = (_strchr(i6, 99) | 0) != 0 | 0;
31436 0 : i8 = (_strchr(i6, 114) | 0) == 0;
31437 0 : i7 = i8 ? i7 : i7 | 2;
31438 0 : i8 = (_strchr(i6, 108) | 0) == 0;
31439 0 : i8 = i8 ? i7 : i7 | 4;
31440 0 : i6 = i5;
31441 0 : i7 = 9;
31442 0 : i5 = (i5 | 0) > 0 ? i8 | 8 : i8;
31443 0 : }
31444 0 : if ((_luaL_getsubtable(i1, -1001e3, 11584) | 0) != 0) {
31445 0 : _lua_pushthread(i2) | 0;
31446 0 : _lua_xmove(i2, i1, 1);
31447 0 : _lua_pushvalue(i1, i3);
31448 0 : _lua_rawset(i1, -3);
31449 0 : _lua_sethook(i2, i7, i5, i6) | 0;
31450 0 : STACKTOP = i4;
31451 0 : return 0;
31452 0 : }
31453 0 : _lua_pushstring(i1, 11592) | 0;
31454 0 : _lua_setfield(i1, -2, 11600);
31455 0 : _lua_pushvalue(i1, -1);
31456 0 : _lua_setmetatable(i1, -2) | 0;
31457 0 : _lua_pushthread(i2) | 0;
31458 0 : _lua_xmove(i2, i1, 1);
31459 0 : _lua_pushvalue(i1, i3);
31460 0 : _lua_rawset(i1, -3);
31461 0 : _lua_sethook(i2, i7, i5, i6) | 0;
31462 0 : STACKTOP = i4;
31463 0 : return 0;
31464 1 : }
31465 1 : function _tconcat(i1) {
31466 0 : i1 = i1 | 0;
31467 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
31468 0 : i3 = STACKTOP;
31469 0 : STACKTOP = STACKTOP + 1056 | 0;
31470 0 : i6 = i3;
31471 0 : i2 = i3 + 16 | 0;
31472 0 : i5 = i3 + 8 | 0;
31473 0 : i4 = _luaL_optlstring(i1, 2, 8208, i5) | 0;
31474 0 : _luaL_checktype(i1, 1, 5);
31475 0 : i8 = _luaL_optinteger(i1, 3, 1) | 0;
31476 0 : if ((_lua_type(i1, 4) | 0) < 1) {
31477 0 : i7 = _luaL_len(i1, 1) | 0;
31478 0 : } else {
31479 0 : i7 = _luaL_checkinteger(i1, 4) | 0;
31480 0 : }
31481 0 : _luaL_buffinit(i1, i2);
31482 0 : if ((i8 | 0) >= (i7 | 0)) {
31483 0 : if ((i8 | 0) != (i7 | 0)) {
31484 0 : _luaL_pushresult(i2);
31485 0 : STACKTOP = i3;
31486 0 : return 1;
31487 0 : }
31488 0 : } else {
31489 0 : do {
31490 0 : _lua_rawgeti(i1, 1, i8);
31491 0 : if ((_lua_isstring(i1, -1) | 0) == 0) {
31492 0 : HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
31493 0 : HEAP32[i6 + 4 >> 2] = i8;
31494 0 : _luaL_error(i1, 8360, i6) | 0;
31495 0 : }
31496 0 : _luaL_addvalue(i2);
31497 0 : _luaL_addlstring(i2, i4, HEAP32[i5 >> 2] | 0);
31498 0 : i8 = i8 + 1 | 0;
31499 0 : } while ((i8 | 0) != (i7 | 0));
31500 0 : }
31501 0 : _lua_rawgeti(i1, 1, i7);
31502 0 : if ((_lua_isstring(i1, -1) | 0) == 0) {
31503 0 : HEAP32[i6 >> 2] = _lua_typename(i1, _lua_type(i1, -1) | 0) | 0;
31504 0 : HEAP32[i6 + 4 >> 2] = i7;
31505 0 : _luaL_error(i1, 8360, i6) | 0;
31506 0 : }
31507 0 : _luaL_addvalue(i2);
31508 0 : _luaL_pushresult(i2);
31509 0 : STACKTOP = i3;
31510 0 : return 1;
31511 1 : }
31512 1 : function _searcher_Croot(i1) {
31513 0 : i1 = i1 | 0;
31514 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
31515 0 : i2 = STACKTOP;
31516 0 : STACKTOP = STACKTOP + 16 | 0;
31517 0 : i3 = i2;
31518 0 : i4 = _luaL_checklstring(i1, 1, 0) | 0;
31519 0 : i5 = _strchr(i4, 46) | 0;
31520 0 : if ((i5 | 0) == 0) {
31521 0 : i6 = 0;
31522 0 : STACKTOP = i2;
31523 0 : return i6 | 0;
31524 0 : }
31525 0 : _lua_pushlstring(i1, i4, i5 - i4 | 0) | 0;
31526 0 : i5 = _lua_tolstring(i1, -1, 0) | 0;
31527 0 : _lua_getfield(i1, -1001001, 4440);
31528 0 : i6 = _lua_tolstring(i1, -1, 0) | 0;
31529 0 : if ((i6 | 0) == 0) {
31530 0 : HEAP32[i3 >> 2] = 4440;
31531 0 : _luaL_error(i1, 5032, i3) | 0;
31532 0 : }
31533 0 : i5 = _searchpath(i1, i5, i6, 4936, 4848) | 0;
31534 0 : if ((i5 | 0) == 0) {
31535 0 : i6 = 1;
31536 0 : STACKTOP = i2;
31537 0 : return i6 | 0;
31538 0 : }
31539 0 : i6 = _loadfunc(i1, i5, i4) | 0;
31540 0 : if ((i6 | 0) == 2) {
31541 0 : HEAP32[i3 >> 2] = i4;
31542 0 : HEAP32[i3 + 4 >> 2] = i5;
31543 0 : _lua_pushfstring(i1, 4856, i3) | 0;
31544 0 : i6 = 1;
31545 0 : STACKTOP = i2;
31546 0 : return i6 | 0;
31547 0 : } else if ((i6 | 0) == 0) {
31548 0 : _lua_pushstring(i1, i5) | 0;
31549 0 : i6 = 2;
31550 0 : STACKTOP = i2;
31551 0 : return i6 | 0;
31552 0 : } else {
31553 0 : i4 = _lua_tolstring(i1, 1, 0) | 0;
31554 0 : i6 = _lua_tolstring(i1, -1, 0) | 0;
31555 0 : HEAP32[i3 >> 2] = i4;
31556 0 : HEAP32[i3 + 4 >> 2] = i5;
31557 0 : HEAP32[i3 + 8 >> 2] = i6;
31558 0 : i6 = _luaL_error(i1, 4888, i3) | 0;
31559 0 : STACKTOP = i2;
31560 0 : return i6 | 0;
31561 0 : }
31562 0 : return 0;
31563 1 : }
31564 14 : function _lua_tonumberx(i5, i7, i1) {
31565 14 : i5 = i5 | 0;
31566 14 : i7 = i7 | 0;
31567 14 : i1 = i1 | 0;
31568 14 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, d8 = 0.0;
31569 14 : i2 = STACKTOP;
31570 14 : STACKTOP = STACKTOP + 16 | 0;
31571 14 : i3 = i2;
31572 14 : i6 = HEAP32[i5 + 16 >> 2] | 0;
31573 14 : do {
31574 14 : if ((i7 | 0) <= 0) {
31575 14 : if (!((i7 | 0) < -1000999)) {
31576 14 : i4 = (HEAP32[i5 + 8 >> 2] | 0) + (i7 << 4) | 0;
31577 14 : break;
31578 14 : }
31579 14 : if ((i7 | 0) == -1001e3) {
31580 14 : i4 = (HEAP32[i5 + 12 >> 2] | 0) + 40 | 0;
31581 14 : break;
31582 14 : }
31583 14 : i5 = -1001e3 - i7 | 0;
31584 14 : i6 = HEAP32[i6 >> 2] | 0;
31585 14 : if ((HEAP32[i6 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i6 >> 2] | 0, (i5 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
31586 14 : i4 = i4 + (i5 + -1 << 4) + 16 | 0;
31587 14 : } else {
31588 14 : i4 = 5192;
31589 14 : }
31590 14 : } else {
31591 14 : i4 = (HEAP32[i6 >> 2] | 0) + (i7 << 4) | 0;
31592 14 : i4 = i4 >>> 0 < (HEAP32[i5 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
31593 14 : }
31594 14 : } while (0);
31595 14 : if ((HEAP32[i4 + 8 >> 2] | 0) != 3) {
31596 14 : i4 = _luaV_tonumber(i4, i3) | 0;
31597 14 : if ((i4 | 0) == 0) {
31598 14 : if ((i1 | 0) == 0) {
31599 14 : d8 = 0.0;
31600 14 : STACKTOP = i2;
31601 14 : return +d8;
31602 14 : }
31603 14 : HEAP32[i1 >> 2] = 0;
31604 14 : d8 = 0.0;
31605 14 : STACKTOP = i2;
31606 14 : return +d8;
31607 14 : }
31608 14 : }
31609 14 : if ((i1 | 0) != 0) {
31610 14 : HEAP32[i1 >> 2] = 1;
31611 14 : }
31612 14 : d8 = +HEAPF64[i4 >> 3];
31613 14 : STACKTOP = i2;
31614 14 : return +d8;
31615 14 : }
31616 1 : function _luaopen_package(i1) {
31617 1 : i1 = i1 | 0;
31618 1 : var i2 = 0;
31619 1 : i2 = STACKTOP;
31620 1 : _luaL_getsubtable(i1, -1001e3, 4184) | 0;
31621 1 : _lua_createtable(i1, 0, 1);
31622 1 : _lua_pushcclosure(i1, 158, 0);
31623 1 : _lua_setfield(i1, -2, 4192);
31624 1 : _lua_setmetatable(i1, -2) | 0;
31625 1 : _lua_createtable(i1, 0, 3);
31626 1 : _luaL_setfuncs(i1, 4200, 0);
31627 1 : _lua_createtable(i1, 4, 0);
31628 1 : _lua_pushvalue(i1, -2);
31629 1 : _lua_pushcclosure(i1, 159, 1);
31630 1 : _lua_rawseti(i1, -2, 1);
31631 1 : _lua_pushvalue(i1, -2);
31632 1 : _lua_pushcclosure(i1, 160, 1);
31633 1 : _lua_rawseti(i1, -2, 2);
31634 1 : _lua_pushvalue(i1, -2);
31635 1 : _lua_pushcclosure(i1, 161, 1);
31636 1 : _lua_rawseti(i1, -2, 3);
31637 1 : _lua_pushvalue(i1, -2);
31638 1 : _lua_pushcclosure(i1, 162, 1);
31639 1 : _lua_rawseti(i1, -2, 4);
31640 1 : _lua_pushvalue(i1, -1);
31641 1 : _lua_setfield(i1, -3, 4232);
31642 1 : _lua_setfield(i1, -2, 4240);
31643 1 : _setpath(i1, 4256, 4264, 4280, 4296);
31644 1 : _setpath(i1, 4440, 4448, 4464, 4480);
31645 1 : _lua_pushlstring(i1, 4552, 10) | 0;
31646 1 : _lua_setfield(i1, -2, 4568);
31647 1 : _luaL_getsubtable(i1, -1001e3, 4576) | 0;
31648 1 : _lua_setfield(i1, -2, 4584);
31649 1 : _luaL_getsubtable(i1, -1001e3, 4592) | 0;
31650 1 : _lua_setfield(i1, -2, 4608);
31651 1 : _lua_rawgeti(i1, -1001e3, 2);
31652 1 : _lua_pushvalue(i1, -2);
31653 1 : _luaL_setfuncs(i1, 4616, 1);
31654 1 : _lua_settop(i1, -2);
31655 1 : STACKTOP = i2;
31656 1 : return 1;
31657 1 : }
31658 1 : function _lua_rawlen(i3, i5) {
31659 0 : i3 = i3 | 0;
31660 0 : i5 = i5 | 0;
31661 0 : var i1 = 0, i2 = 0, i4 = 0;
31662 0 : i1 = STACKTOP;
31663 0 : i4 = HEAP32[i3 + 16 >> 2] | 0;
31664 0 : do {
31665 0 : if ((i5 | 0) <= 0) {
31666 0 : if (!((i5 | 0) < -1000999)) {
31667 0 : i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
31668 0 : break;
31669 0 : }
31670 0 : if ((i5 | 0) == -1001e3) {
31671 0 : i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
31672 0 : break;
31673 0 : }
31674 0 : i3 = -1001e3 - i5 | 0;
31675 0 : i4 = HEAP32[i4 >> 2] | 0;
31676 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
31677 0 : i2 = i2 + (i3 + -1 << 4) + 16 | 0;
31678 0 : } else {
31679 0 : i2 = 5192;
31680 0 : }
31681 0 : } else {
31682 0 : i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
31683 0 : i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
31684 0 : }
31685 0 : } while (0);
31686 0 : i3 = HEAP32[i2 + 8 >> 2] & 15;
31687 0 : if ((i3 | 0) == 5) {
31688 0 : i5 = _luaH_getn(HEAP32[i2 >> 2] | 0) | 0;
31689 0 : STACKTOP = i1;
31690 0 : return i5 | 0;
31691 0 : } else if ((i3 | 0) == 4) {
31692 0 : i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 12 >> 2] | 0;
31693 0 : STACKTOP = i1;
31694 0 : return i5 | 0;
31695 0 : } else if ((i3 | 0) == 7) {
31696 0 : i5 = HEAP32[(HEAP32[i2 >> 2] | 0) + 16 >> 2] | 0;
31697 0 : STACKTOP = i1;
31698 0 : return i5 | 0;
31699 0 : } else {
31700 0 : i5 = 0;
31701 0 : STACKTOP = i1;
31702 0 : return i5 | 0;
31703 0 : }
31704 0 : return 0;
31705 1 : }
31706 1 : function _searchpath(i3, i5, i6, i7, i8) {
31707 0 : i3 = i3 | 0;
31708 0 : i5 = i5 | 0;
31709 0 : i6 = i6 | 0;
31710 0 : i7 = i7 | 0;
31711 0 : i8 = i8 | 0;
31712 0 : var i1 = 0, i2 = 0, i4 = 0;
31713 0 : i2 = STACKTOP;
31714 0 : STACKTOP = STACKTOP + 1056 | 0;
31715 0 : i4 = i2;
31716 0 : i1 = i2 + 8 | 0;
31717 0 : _luaL_buffinit(i3, i1);
31718 0 : if ((HEAP8[i7] | 0) != 0) {
31719 0 : i5 = _luaL_gsub(i3, i5, i7, i8) | 0;
31720 0 : }
31721 0 : while (1) {
31722 0 : i7 = HEAP8[i6] | 0;
31723 0 : if (i7 << 24 >> 24 == 59) {
31724 0 : i6 = i6 + 1 | 0;
31725 0 : continue;
31726 0 : } else if (i7 << 24 >> 24 == 0) {
31727 0 : i3 = 12;
31728 0 : break;
31729 0 : }
31730 0 : i8 = _strchr(i6, 59) | 0;
31731 0 : if ((i8 | 0) == 0) {
31732 0 : i8 = i6 + (_strlen(i6 | 0) | 0) | 0;
31733 0 : }
31734 0 : _lua_pushlstring(i3, i6, i8 - i6 | 0) | 0;
31735 0 : if ((i8 | 0) == 0) {
31736 0 : i3 = 12;
31737 0 : break;
31738 0 : }
31739 0 : i6 = _luaL_gsub(i3, _lua_tolstring(i3, -1, 0) | 0, 5064, i5) | 0;
31740 0 : _lua_remove(i3, -2);
31741 0 : i7 = _fopen(i6 | 0, 5088) | 0;
31742 0 : if ((i7 | 0) != 0) {
31743 0 : i3 = 10;
31744 0 : break;
31745 0 : }
31746 0 : HEAP32[i4 >> 2] = i6;
31747 0 : _lua_pushfstring(i3, 5072, i4) | 0;
31748 0 : _lua_remove(i3, -2);
31749 0 : _luaL_addvalue(i1);
31750 0 : i6 = i8;
31751 0 : }
31752 0 : if ((i3 | 0) == 10) {
31753 0 : _fclose(i7 | 0) | 0;
31754 0 : i8 = i6;
31755 0 : STACKTOP = i2;
31756 0 : return i8 | 0;
31757 0 : } else if ((i3 | 0) == 12) {
31758 0 : _luaL_pushresult(i1);
31759 0 : i8 = 0;
31760 0 : STACKTOP = i2;
31761 0 : return i8 | 0;
31762 0 : }
31763 0 : return 0;
31764 1 : }
31765 1 : function _io_readline(i1) {
31766 0 : i1 = i1 | 0;
31767 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
31768 0 : i2 = STACKTOP;
31769 0 : STACKTOP = STACKTOP + 16 | 0;
31770 0 : i3 = i2;
31771 0 : i4 = _lua_touserdata(i1, -1001001) | 0;
31772 0 : i5 = _lua_tointegerx(i1, -1001002, 0) | 0;
31773 0 : if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
31774 0 : i6 = _luaL_error(i1, 3344, i3) | 0;
31775 0 : STACKTOP = i2;
31776 0 : return i6 | 0;
31777 0 : }
31778 0 : _lua_settop(i1, 1);
31779 0 : if ((i5 | 0) >= 1) {
31780 0 : i6 = 1;
31781 0 : while (1) {
31782 0 : _lua_pushvalue(i1, -1001003 - i6 | 0);
31783 0 : if ((i6 | 0) == (i5 | 0)) {
31784 0 : break;
31785 0 : } else {
31786 0 : i6 = i6 + 1 | 0;
31787 0 : }
31788 0 : }
31789 0 : }
31790 0 : i4 = _g_read(i1, HEAP32[i4 >> 2] | 0, 2) | 0;
31791 0 : if ((_lua_type(i1, 0 - i4 | 0) | 0) != 0) {
31792 0 : i6 = i4;
31793 0 : STACKTOP = i2;
31794 0 : return i6 | 0;
31795 0 : }
31796 0 : if ((i4 | 0) > 1) {
31797 0 : HEAP32[i3 >> 2] = _lua_tolstring(i1, 1 - i4 | 0, 0) | 0;
31798 0 : i6 = _luaL_error(i1, 3368, i3) | 0;
31799 0 : STACKTOP = i2;
31800 0 : return i6 | 0;
31801 0 : }
31802 0 : if ((_lua_toboolean(i1, -1001003) | 0) == 0) {
31803 0 : i6 = 0;
31804 0 : STACKTOP = i2;
31805 0 : return i6 | 0;
31806 0 : }
31807 0 : _lua_settop(i1, 0);
31808 0 : _lua_pushvalue(i1, -1001001);
31809 0 : i5 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
31810 0 : i6 = HEAP32[i5 >> 2] | 0;
31811 0 : HEAP32[i5 >> 2] = 0;
31812 0 : FUNCTION_TABLE_ii[i6 & 255](i1) | 0;
31813 0 : i6 = 0;
31814 0 : STACKTOP = i2;
31815 0 : return i6 | 0;
31816 1 : }
31817 22 : function _luaK_setreturns(i3, i5, i6) {
31818 22 : i3 = i3 | 0;
31819 22 : i5 = i5 | 0;
31820 22 : i6 = i6 | 0;
31821 22 : var i1 = 0, i2 = 0, i4 = 0, i7 = 0, i8 = 0;
31822 22 : i2 = STACKTOP;
31823 22 : i4 = HEAP32[i5 >> 2] | 0;
31824 22 : if ((i4 | 0) == 13) {
31825 22 : i7 = i5 + 8 | 0;
31826 22 : i8 = HEAP32[i3 >> 2] | 0;
31827 22 : i4 = HEAP32[i8 + 12 >> 2] | 0;
31828 22 : i5 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
31829 22 : HEAP32[i5 >> 2] = HEAP32[i5 >> 2] & 8388607 | (i6 << 23) + 8388608;
31830 22 : i7 = i4 + (HEAP32[i7 >> 2] << 2) | 0;
31831 22 : i4 = i3 + 48 | 0;
31832 22 : HEAP32[i7 >> 2] = (HEAPU8[i4] | 0) << 6 | HEAP32[i7 >> 2] & -16321;
31833 22 : i7 = HEAP8[i4] | 0;
31834 22 : i5 = (i7 & 255) + 1 | 0;
31835 22 : i6 = i8 + 78 | 0;
31836 22 : do {
31837 22 : if (i5 >>> 0 > (HEAPU8[i6] | 0) >>> 0) {
31838 22 : if (i5 >>> 0 > 249) {
31839 22 : _luaX_syntaxerror(HEAP32[i3 + 12 >> 2] | 0, 10536);
31840 22 : } else {
31841 22 : HEAP8[i6] = i5;
31842 22 : i1 = HEAP8[i4] | 0;
31843 22 : break;
31844 22 : }
31845 22 : } else {
31846 22 : i1 = i7;
31847 22 : }
31848 22 : } while (0);
31849 22 : HEAP8[i4] = (i1 & 255) + 1;
31850 22 : STACKTOP = i2;
31851 22 : return;
31852 22 : } else if ((i4 | 0) == 12) {
31853 22 : i8 = (HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] << 2) | 0;
31854 22 : HEAP32[i8 >> 2] = HEAP32[i8 >> 2] & -8372225 | (i6 << 14) + 16384 & 8372224;
31855 22 : STACKTOP = i2;
31856 22 : return;
31857 22 : } else {
31858 22 : STACKTOP = i2;
31859 22 : return;
31860 22 : }
31861 22 : }
31862 1 : function _luaZ_read(i2, i9, i8) {
31863 0 : i2 = i2 | 0;
31864 0 : i9 = i9 | 0;
31865 0 : i8 = i8 | 0;
31866 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i10 = 0, i11 = 0;
31867 0 : i1 = STACKTOP;
31868 0 : STACKTOP = STACKTOP + 16 | 0;
31869 0 : i3 = i1;
31870 0 : if ((i8 | 0) == 0) {
31871 0 : i11 = 0;
31872 0 : STACKTOP = i1;
31873 0 : return i11 | 0;
31874 0 : }
31875 0 : i7 = i2 + 16 | 0;
31876 0 : i6 = i2 + 8 | 0;
31877 0 : i4 = i2 + 12 | 0;
31878 0 : i5 = i2 + 4 | 0;
31879 0 : i11 = HEAP32[i2 >> 2] | 0;
31880 0 : while (1) {
31881 0 : if ((i11 | 0) == 0) {
31882 0 : i10 = FUNCTION_TABLE_iiii[HEAP32[i6 >> 2] & 3](HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, i3) | 0;
31883 0 : if ((i10 | 0) == 0) {
31884 0 : i2 = 9;
31885 0 : break;
31886 0 : }
31887 0 : i11 = HEAP32[i3 >> 2] | 0;
31888 0 : if ((i11 | 0) == 0) {
31889 0 : i2 = 9;
31890 0 : break;
31891 0 : }
31892 0 : HEAP32[i2 >> 2] = i11;
31893 0 : HEAP32[i5 >> 2] = i10;
31894 0 : } else {
31895 0 : i10 = HEAP32[i5 >> 2] | 0;
31896 0 : }
31897 0 : i11 = i8 >>> 0 > i11 >>> 0 ? i11 : i8;
31898 0 : _memcpy(i9 | 0, i10 | 0, i11 | 0) | 0;
31899 0 : i10 = (HEAP32[i2 >> 2] | 0) - i11 | 0;
31900 0 : HEAP32[i2 >> 2] = i10;
31901 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + i11;
31902 0 : if ((i8 | 0) == (i11 | 0)) {
31903 0 : i8 = 0;
31904 0 : i2 = 9;
31905 0 : break;
31906 0 : } else {
31907 0 : i8 = i8 - i11 | 0;
31908 0 : i9 = i9 + i11 | 0;
31909 0 : i11 = i10;
31910 0 : }
31911 0 : }
31912 0 : if ((i2 | 0) == 9) {
31913 0 : STACKTOP = i1;
31914 0 : return i8 | 0;
31915 0 : }
31916 0 : return 0;
31917 1 : }
31918 1 : function _lua_load(i1, i5, i4, i3, i6) {
31919 1 : i1 = i1 | 0;
31920 1 : i5 = i5 | 0;
31921 1 : i4 = i4 | 0;
31922 1 : i3 = i3 | 0;
31923 1 : i6 = i6 | 0;
31924 1 : var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
31925 1 : i2 = STACKTOP;
31926 1 : STACKTOP = STACKTOP + 32 | 0;
31927 1 : i7 = i2;
31928 1 : _luaZ_init(i1, i7, i5, i4);
31929 1 : i3 = _luaD_protectedparser(i1, i7, (i3 | 0) == 0 ? 928 : i3, i6) | 0;
31930 1 : if ((i3 | 0) != 0) {
31931 1 : STACKTOP = i2;
31932 1 : return i3 | 0;
31933 1 : }
31934 1 : i4 = HEAP32[(HEAP32[i1 + 8 >> 2] | 0) + -16 >> 2] | 0;
31935 1 : if ((HEAP8[i4 + 6 | 0] | 0) != 1) {
31936 1 : STACKTOP = i2;
31937 1 : return i3 | 0;
31938 1 : }
31939 1 : i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
31940 1 : i4 = i4 + 16 | 0;
31941 1 : i6 = HEAP32[(HEAP32[i4 >> 2] | 0) + 8 >> 2] | 0;
31942 1 : i9 = i5;
31943 1 : i8 = HEAP32[i9 + 4 >> 2] | 0;
31944 1 : i7 = i6;
31945 1 : HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
31946 1 : HEAP32[i7 + 4 >> 2] = i8;
31947 1 : i7 = i5 + 8 | 0;
31948 1 : HEAP32[i6 + 8 >> 2] = HEAP32[i7 >> 2];
31949 1 : if ((HEAP32[i7 >> 2] & 64 | 0) == 0) {
31950 1 : STACKTOP = i2;
31951 1 : return i3 | 0;
31952 1 : }
31953 1 : i5 = HEAP32[i5 >> 2] | 0;
31954 1 : if ((HEAP8[i5 + 5 | 0] & 3) == 0) {
31955 1 : STACKTOP = i2;
31956 1 : return i3 | 0;
31957 1 : }
31958 1 : i4 = HEAP32[i4 >> 2] | 0;
31959 1 : if ((HEAP8[i4 + 5 | 0] & 4) == 0) {
31960 1 : STACKTOP = i2;
31961 1 : return i3 | 0;
31962 1 : }
31963 1 : _luaC_barrier_(i1, i4, i5);
31964 1 : STACKTOP = i2;
31965 1 : return i3 | 0;
31966 1 : }
31967 5 : function _g_write(i1, i4, i8) {
31968 5 : i1 = i1 | 0;
31969 5 : i4 = i4 | 0;
31970 5 : i8 = i8 | 0;
31971 5 : var i2 = 0, i3 = 0, i5 = 0, i6 = 0, i7 = 0, i9 = 0, d10 = 0.0;
31972 5 : i5 = STACKTOP;
31973 5 : STACKTOP = STACKTOP + 16 | 0;
31974 5 : i2 = i5;
31975 5 : i3 = i5 + 8 | 0;
31976 5 : i7 = _lua_gettop(i1) | 0;
31977 5 : if ((i7 | 0) == (i8 | 0)) {
31978 5 : i9 = 1;
31979 5 : STACKTOP = i5;
31980 5 : return i9 | 0;
31981 5 : }
31982 5 : i6 = i8;
31983 5 : i7 = i7 - i8 | 0;
31984 5 : i9 = 1;
31985 5 : while (1) {
31986 5 : i7 = i7 + -1 | 0;
31987 5 : if ((_lua_type(i1, i6) | 0) == 3) {
31988 5 : if ((i9 | 0) == 0) {
31989 5 : i8 = 0;
31990 5 : } else {
31991 5 : d10 = +_lua_tonumberx(i1, i6, 0);
31992 5 : HEAPF64[tempDoublePtr >> 3] = d10;
31993 5 : HEAP32[i2 >> 2] = HEAP32[tempDoublePtr >> 2];
31994 5 : HEAP32[i2 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
31995 5 : i8 = (_fprintf(i4 | 0, 3072, i2 | 0) | 0) > 0;
31996 5 : }
31997 5 : } else {
31998 5 : i8 = _luaL_checklstring(i1, i6, i3) | 0;
31999 5 : if ((i9 | 0) == 0) {
32000 5 : i8 = 0;
32001 5 : } else {
32002 5 : i8 = _fwrite(i8 | 0, 1, HEAP32[i3 >> 2] | 0, i4 | 0) | 0;
32003 5 : i8 = (i8 | 0) == (HEAP32[i3 >> 2] | 0);
32004 5 : }
32005 5 : }
32006 5 : if ((i7 | 0) == 0) {
32007 5 : break;
32008 5 : } else {
32009 5 : i6 = i6 + 1 | 0;
32010 5 : i9 = i8 & 1;
32011 5 : }
32012 5 : }
32013 5 : if (i8) {
32014 5 : i9 = 1;
32015 5 : STACKTOP = i5;
32016 5 : return i9 | 0;
32017 5 : }
32018 5 : i9 = _luaL_fileresult(i1, 0, 0) | 0;
32019 5 : STACKTOP = i5;
32020 5 : return i9 | 0;
32021 5 : }
32022 1 : function _lua_getuservalue(i2, i5) {
32023 0 : i2 = i2 | 0;
32024 0 : i5 = i5 | 0;
32025 0 : var i1 = 0, i3 = 0, i4 = 0;
32026 0 : i1 = STACKTOP;
32027 0 : i4 = HEAP32[i2 + 16 >> 2] | 0;
32028 0 : do {
32029 0 : if ((i5 | 0) <= 0) {
32030 0 : if (!((i5 | 0) < -1000999)) {
32031 0 : i3 = (HEAP32[i2 + 8 >> 2] | 0) + (i5 << 4) | 0;
32032 0 : break;
32033 0 : }
32034 0 : if ((i5 | 0) == -1001e3) {
32035 0 : i3 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
32036 0 : break;
32037 0 : }
32038 0 : i5 = -1001e3 - i5 | 0;
32039 0 : i4 = HEAP32[i4 >> 2] | 0;
32040 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
32041 0 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
32042 0 : } else {
32043 0 : i3 = 5192;
32044 0 : }
32045 0 : } else {
32046 0 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
32047 0 : i3 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
32048 0 : }
32049 0 : } while (0);
32050 0 : i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
32051 0 : i2 = i2 + 8 | 0;
32052 0 : i4 = HEAP32[i2 >> 2] | 0;
32053 0 : if ((i3 | 0) == 0) {
32054 0 : HEAP32[i4 + 8 >> 2] = 0;
32055 0 : i5 = i4;
32056 0 : i5 = i5 + 16 | 0;
32057 0 : HEAP32[i2 >> 2] = i5;
32058 0 : STACKTOP = i1;
32059 0 : return;
32060 0 : } else {
32061 0 : HEAP32[i4 >> 2] = i3;
32062 0 : HEAP32[i4 + 8 >> 2] = 69;
32063 0 : i5 = HEAP32[i2 >> 2] | 0;
32064 0 : i5 = i5 + 16 | 0;
32065 0 : HEAP32[i2 >> 2] = i5;
32066 0 : STACKTOP = i1;
32067 0 : return;
32068 0 : }
32069 1 : }
32070 1 : function _luaL_addlstring(i7, i6, i1) {
32071 0 : i7 = i7 | 0;
32072 0 : i6 = i6 | 0;
32073 0 : i1 = i1 | 0;
32074 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0, i9 = 0;
32075 0 : i5 = STACKTOP;
32076 0 : STACKTOP = STACKTOP + 16 | 0;
32077 0 : i4 = HEAP32[i7 + 12 >> 2] | 0;
32078 0 : i3 = i7 + 4 | 0;
32079 0 : i9 = HEAP32[i3 >> 2] | 0;
32080 0 : i2 = i7 + 8 | 0;
32081 0 : i8 = HEAP32[i2 >> 2] | 0;
32082 0 : if (!((i9 - i8 | 0) >>> 0 < i1 >>> 0)) {
32083 0 : i7 = HEAP32[i7 >> 2] | 0;
32084 0 : i9 = i8;
32085 0 : i9 = i7 + i9 | 0;
32086 0 : _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
32087 0 : i9 = HEAP32[i2 >> 2] | 0;
32088 0 : i9 = i9 + i1 | 0;
32089 0 : HEAP32[i2 >> 2] = i9;
32090 0 : STACKTOP = i5;
32091 0 : return;
32092 0 : }
32093 0 : i9 = i9 << 1;
32094 0 : i9 = (i9 - i8 | 0) >>> 0 < i1 >>> 0 ? i8 + i1 | 0 : i9;
32095 0 : if (i9 >>> 0 < i8 >>> 0 | (i9 - i8 | 0) >>> 0 < i1 >>> 0) {
32096 0 : _luaL_error(i4, 1272, i5) | 0;
32097 0 : }
32098 0 : i8 = _lua_newuserdata(i4, i9) | 0;
32099 0 : _memcpy(i8 | 0, HEAP32[i7 >> 2] | 0, HEAP32[i2 >> 2] | 0) | 0;
32100 0 : if ((HEAP32[i7 >> 2] | 0) != (i7 + 16 | 0)) {
32101 0 : _lua_remove(i4, -2);
32102 0 : }
32103 0 : HEAP32[i7 >> 2] = i8;
32104 0 : HEAP32[i3 >> 2] = i9;
32105 0 : i9 = HEAP32[i2 >> 2] | 0;
32106 0 : i9 = i8 + i9 | 0;
32107 0 : _memcpy(i9 | 0, i6 | 0, i1 | 0) | 0;
32108 0 : i9 = HEAP32[i2 >> 2] | 0;
32109 0 : i9 = i9 + i1 | 0;
32110 0 : HEAP32[i2 >> 2] = i9;
32111 0 : STACKTOP = i5;
32112 0 : return;
32113 1 : }
32114 3 : function _lua_rawgeti(i3, i6, i1) {
32115 3 : i3 = i3 | 0;
32116 3 : i6 = i6 | 0;
32117 3 : i1 = i1 | 0;
32118 3 : var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
32119 3 : i2 = STACKTOP;
32120 3 : i5 = HEAP32[i3 + 16 >> 2] | 0;
32121 3 : do {
32122 3 : if ((i6 | 0) <= 0) {
32123 3 : if (!((i6 | 0) < -1000999)) {
32124 3 : i4 = (HEAP32[i3 + 8 >> 2] | 0) + (i6 << 4) | 0;
32125 3 : break;
32126 3 : }
32127 3 : if ((i6 | 0) == -1001e3) {
32128 3 : i4 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
32129 3 : break;
32130 3 : }
32131 3 : i6 = -1001e3 - i6 | 0;
32132 3 : i5 = HEAP32[i5 >> 2] | 0;
32133 3 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
32134 3 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
32135 3 : } else {
32136 3 : i4 = 5192;
32137 3 : }
32138 3 : } else {
32139 3 : i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
32140 3 : i4 = i4 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
32141 3 : }
32142 3 : } while (0);
32143 3 : i4 = _luaH_getint(HEAP32[i4 >> 2] | 0, i1) | 0;
32144 3 : i6 = i3 + 8 | 0;
32145 3 : i5 = HEAP32[i6 >> 2] | 0;
32146 3 : i7 = i4;
32147 3 : i1 = HEAP32[i7 + 4 >> 2] | 0;
32148 3 : i3 = i5;
32149 3 : HEAP32[i3 >> 2] = HEAP32[i7 >> 2];
32150 3 : HEAP32[i3 + 4 >> 2] = i1;
32151 3 : HEAP32[i5 + 8 >> 2] = HEAP32[i4 + 8 >> 2];
32152 3 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
32153 3 : STACKTOP = i2;
32154 3 : return;
32155 3 : }
32156 175 : function _lua_setfield(i1, i6, i3) {
32157 175 : i1 = i1 | 0;
32158 175 : i6 = i6 | 0;
32159 175 : i3 = i3 | 0;
32160 175 : var i2 = 0, i4 = 0, i5 = 0;
32161 175 : i2 = STACKTOP;
32162 175 : i5 = HEAP32[i1 + 16 >> 2] | 0;
32163 175 : do {
32164 175 : if ((i6 | 0) <= 0) {
32165 175 : if (!((i6 | 0) < -1000999)) {
32166 175 : i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
32167 175 : break;
32168 175 : }
32169 175 : if ((i6 | 0) == -1001e3) {
32170 175 : i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
32171 175 : break;
32172 175 : }
32173 175 : i6 = -1001e3 - i6 | 0;
32174 175 : i5 = HEAP32[i5 >> 2] | 0;
32175 175 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
32176 175 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
32177 175 : } else {
32178 175 : i4 = 5192;
32179 175 : }
32180 175 : } else {
32181 175 : i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
32182 175 : i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
32183 175 : }
32184 175 : } while (0);
32185 175 : i6 = i1 + 8 | 0;
32186 175 : i5 = HEAP32[i6 >> 2] | 0;
32187 175 : HEAP32[i6 >> 2] = i5 + 16;
32188 175 : i3 = _luaS_new(i1, i3) | 0;
32189 175 : HEAP32[i5 >> 2] = i3;
32190 175 : HEAP32[i5 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
32191 175 : i5 = HEAP32[i6 >> 2] | 0;
32192 175 : _luaV_settable(i1, i4, i5 + -16 | 0, i5 + -32 | 0);
32193 175 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + -32;
32194 175 : STACKTOP = i2;
32195 175 : return;
32196 175 : }
32197 1 : function _luaopen_io(i1) {
32198 1 : i1 = i1 | 0;
32199 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
32200 1 : i2 = STACKTOP;
32201 1 : _lua_createtable(i1, 0, 11);
32202 1 : _luaL_setfuncs(i1, 2680, 0);
32203 1 : _luaL_newmetatable(i1, 2832) | 0;
32204 1 : _lua_pushvalue(i1, -1);
32205 1 : _lua_setfield(i1, -2, 2872);
32206 1 : _luaL_setfuncs(i1, 2880, 0);
32207 1 : _lua_settop(i1, -2);
32208 1 : i5 = HEAP32[_stdin >> 2] | 0;
32209 1 : i4 = _lua_newuserdata(i1, 8) | 0;
32210 1 : i3 = i4 + 4 | 0;
32211 1 : HEAP32[i3 >> 2] = 0;
32212 1 : _luaL_setmetatable(i1, 2832);
32213 1 : HEAP32[i4 >> 2] = i5;
32214 1 : HEAP32[i3 >> 2] = 154;
32215 1 : _lua_pushvalue(i1, -1);
32216 1 : _lua_setfield(i1, -1001e3, 2776);
32217 1 : _lua_setfield(i1, -2, 2792);
32218 1 : i3 = HEAP32[_stdout >> 2] | 0;
32219 1 : i4 = _lua_newuserdata(i1, 8) | 0;
32220 1 : i5 = i4 + 4 | 0;
32221 1 : HEAP32[i5 >> 2] = 0;
32222 1 : _luaL_setmetatable(i1, 2832);
32223 1 : HEAP32[i4 >> 2] = i3;
32224 1 : HEAP32[i5 >> 2] = 154;
32225 1 : _lua_pushvalue(i1, -1);
32226 1 : _lua_setfield(i1, -1001e3, 2800);
32227 1 : _lua_setfield(i1, -2, 2816);
32228 1 : i5 = HEAP32[_stderr >> 2] | 0;
32229 1 : i4 = _lua_newuserdata(i1, 8) | 0;
32230 1 : i3 = i4 + 4 | 0;
32231 1 : HEAP32[i3 >> 2] = 0;
32232 1 : _luaL_setmetatable(i1, 2832);
32233 1 : HEAP32[i4 >> 2] = i5;
32234 1 : HEAP32[i3 >> 2] = 154;
32235 1 : _lua_setfield(i1, -2, 2824);
32236 1 : STACKTOP = i2;
32237 1 : return 1;
32238 1 : }
32239 159 : function _lua_pushcclosure(i1, i4, i5) {
32240 159 : i1 = i1 | 0;
32241 159 : i4 = i4 | 0;
32242 159 : i5 = i5 | 0;
32243 159 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
32244 159 : i2 = STACKTOP;
32245 159 : if ((i5 | 0) == 0) {
32246 159 : i6 = HEAP32[i1 + 8 >> 2] | 0;
32247 159 : HEAP32[i6 >> 2] = i4;
32248 159 : HEAP32[i6 + 8 >> 2] = 22;
32249 159 : i6 = i1 + 8 | 0;
32250 159 : i5 = HEAP32[i6 >> 2] | 0;
32251 159 : i5 = i5 + 16 | 0;
32252 159 : HEAP32[i6 >> 2] = i5;
32253 159 : STACKTOP = i2;
32254 159 : return;
32255 159 : }
32256 159 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
32257 159 : _luaC_step(i1);
32258 159 : }
32259 159 : i3 = _luaF_newCclosure(i1, i5) | 0;
32260 159 : HEAP32[i3 + 12 >> 2] = i4;
32261 159 : i4 = i1 + 8 | 0;
32262 159 : i6 = (HEAP32[i4 >> 2] | 0) + (0 - i5 << 4) | 0;
32263 159 : HEAP32[i4 >> 2] = i6;
32264 159 : do {
32265 159 : i5 = i5 + -1 | 0;
32266 159 : i9 = i6 + (i5 << 4) | 0;
32267 159 : i8 = HEAP32[i9 + 4 >> 2] | 0;
32268 159 : i7 = i3 + (i5 << 4) + 16 | 0;
32269 159 : HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
32270 159 : HEAP32[i7 + 4 >> 2] = i8;
32271 159 : HEAP32[i3 + (i5 << 4) + 24 >> 2] = HEAP32[i6 + (i5 << 4) + 8 >> 2];
32272 159 : i6 = HEAP32[i4 >> 2] | 0;
32273 159 : } while ((i5 | 0) != 0);
32274 159 : HEAP32[i6 >> 2] = i3;
32275 159 : HEAP32[i6 + 8 >> 2] = 102;
32276 159 : i9 = i1 + 8 | 0;
32277 159 : i8 = HEAP32[i9 >> 2] | 0;
32278 159 : i8 = i8 + 16 | 0;
32279 159 : HEAP32[i9 >> 2] = i8;
32280 159 : STACKTOP = i2;
32281 159 : return;
32282 159 : }
32283 2 : function _luaF_findupval(i3, i4) {
32284 2 : i3 = i3 | 0;
32285 2 : i4 = i4 | 0;
32286 2 : var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i7 = 0;
32287 2 : i1 = STACKTOP;
32288 2 : i2 = HEAP32[i3 + 12 >> 2] | 0;
32289 2 : i6 = i3 + 56 | 0;
32290 2 : i5 = HEAP32[i6 >> 2] | 0;
32291 2 : L1 : do {
32292 2 : if ((i5 | 0) == 0) {
32293 2 : i5 = i6;
32294 2 : } else {
32295 2 : while (1) {
32296 2 : i7 = HEAP32[i5 + 8 >> 2] | 0;
32297 2 : if (i7 >>> 0 < i4 >>> 0) {
32298 2 : i5 = i6;
32299 2 : break L1;
32300 2 : }
32301 2 : if ((i7 | 0) == (i4 | 0)) {
32302 2 : break;
32303 2 : }
32304 2 : i6 = HEAP32[i5 >> 2] | 0;
32305 2 : if ((i6 | 0) == 0) {
32306 2 : break L1;
32307 2 : } else {
32308 2 : i7 = i5;
32309 2 : i5 = i6;
32310 2 : i6 = i7;
32311 2 : }
32312 2 : }
32313 2 : i4 = i5 + 5 | 0;
32314 2 : i3 = (HEAPU8[i4] | 0) ^ 3;
32315 2 : if ((((HEAPU8[i2 + 60 | 0] | 0) ^ 3) & i3 | 0) != 0) {
32316 2 : i7 = i5;
32317 2 : STACKTOP = i1;
32318 2 : return i7 | 0;
32319 2 : }
32320 2 : HEAP8[i4] = i3;
32321 2 : i7 = i5;
32322 2 : STACKTOP = i1;
32323 2 : return i7 | 0;
32324 2 : }
32325 2 : } while (0);
32326 2 : i7 = _luaC_newobj(i3, 10, 32, i5, 0) | 0;
32327 2 : HEAP32[i7 + 8 >> 2] = i4;
32328 2 : i4 = i7 + 16 | 0;
32329 2 : HEAP32[i4 >> 2] = i2 + 112;
32330 2 : i6 = i2 + 132 | 0;
32331 2 : i5 = HEAP32[i6 >> 2] | 0;
32332 2 : HEAP32[i4 + 4 >> 2] = i5;
32333 2 : HEAP32[i5 + 16 >> 2] = i7;
32334 2 : HEAP32[i6 >> 2] = i7;
32335 2 : STACKTOP = i1;
32336 2 : return i7 | 0;
32337 2 : }
32338 4 : function _luaC_checkfinalizer(i5, i4, i6) {
32339 4 : i5 = i5 | 0;
32340 4 : i4 = i4 | 0;
32341 4 : i6 = i6 | 0;
32342 4 : var i1 = 0, i2 = 0, i3 = 0, i7 = 0, i8 = 0;
32343 4 : i3 = STACKTOP;
32344 4 : i1 = HEAP32[i5 + 12 >> 2] | 0;
32345 4 : i2 = i4 + 5 | 0;
32346 4 : if ((HEAP8[i2] & 24) != 0 | (i6 | 0) == 0) {
32347 4 : STACKTOP = i3;
32348 4 : return;
32349 4 : }
32350 4 : if (!((HEAP8[i6 + 6 | 0] & 4) == 0)) {
32351 4 : STACKTOP = i3;
32352 4 : return;
32353 4 : }
32354 4 : if ((_luaT_gettm(i6, 2, HEAP32[i1 + 192 >> 2] | 0) | 0) == 0) {
32355 4 : STACKTOP = i3;
32356 4 : return;
32357 4 : }
32358 4 : i7 = i1 + 76 | 0;
32359 4 : i8 = HEAP32[i7 >> 2] | 0;
32360 4 : if ((i8 | 0) == (i4 | 0)) {
32361 4 : do {
32362 4 : i6 = _sweeplist(i5, i8, 1) | 0;
32363 4 : } while ((i6 | 0) == (i8 | 0));
32364 4 : HEAP32[i7 >> 2] = i6;
32365 4 : }
32366 4 : i5 = i1 + 68 | 0;
32367 4 : while (1) {
32368 4 : i6 = HEAP32[i5 >> 2] | 0;
32369 4 : if ((i6 | 0) == (i4 | 0)) {
32370 4 : break;
32371 4 : } else {
32372 4 : i5 = i6;
32373 4 : }
32374 4 : }
32375 4 : HEAP32[i5 >> 2] = HEAP32[i4 >> 2];
32376 4 : i8 = i1 + 72 | 0;
32377 4 : HEAP32[i4 >> 2] = HEAP32[i8 >> 2];
32378 4 : HEAP32[i8 >> 2] = i4;
32379 4 : i4 = HEAPU8[i2] | 0 | 16;
32380 4 : HEAP8[i2] = i4;
32381 4 : if ((HEAPU8[i1 + 61 | 0] | 0) < 2) {
32382 4 : HEAP8[i2] = i4 & 191;
32383 4 : STACKTOP = i3;
32384 4 : return;
32385 4 : } else {
32386 4 : HEAP8[i2] = HEAP8[i1 + 60 | 0] & 3 | i4 & 184;
32387 4 : STACKTOP = i3;
32388 4 : return;
32389 4 : }
32390 4 : }
32391 1 : function _io_lines(i1) {
32392 0 : i1 = i1 | 0;
32393 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
32394 0 : i2 = STACKTOP;
32395 0 : STACKTOP = STACKTOP + 16 | 0;
32396 0 : i3 = i2;
32397 0 : if ((_lua_type(i1, 1) | 0) == -1) {
32398 0 : _lua_pushnil(i1);
32399 0 : }
32400 0 : if ((_lua_type(i1, 1) | 0) == 0) {
32401 0 : _lua_getfield(i1, -1001e3, 2776);
32402 0 : _lua_replace(i1, 1);
32403 0 : if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) != 0) {
32404 0 : i4 = 0;
32405 0 : _aux_lines(i1, i4);
32406 0 : STACKTOP = i2;
32407 0 : return 1;
32408 0 : }
32409 0 : _luaL_error(i1, 3080, i3) | 0;
32410 0 : i4 = 0;
32411 0 : _aux_lines(i1, i4);
32412 0 : STACKTOP = i2;
32413 0 : return 1;
32414 0 : } else {
32415 0 : i4 = _luaL_checklstring(i1, 1, 0) | 0;
32416 0 : i6 = _lua_newuserdata(i1, 8) | 0;
32417 0 : i5 = i6 + 4 | 0;
32418 0 : HEAP32[i5 >> 2] = 0;
32419 0 : _luaL_setmetatable(i1, 2832);
32420 0 : HEAP32[i6 >> 2] = 0;
32421 0 : HEAP32[i5 >> 2] = 156;
32422 0 : i5 = _fopen(i4 | 0, 3480) | 0;
32423 0 : HEAP32[i6 >> 2] = i5;
32424 0 : if ((i5 | 0) == 0) {
32425 0 : i6 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
32426 0 : HEAP32[i3 >> 2] = i4;
32427 0 : HEAP32[i3 + 4 >> 2] = i6;
32428 0 : _luaL_error(i1, 3520, i3) | 0;
32429 0 : }
32430 0 : _lua_replace(i1, 1);
32431 0 : i6 = 1;
32432 0 : _aux_lines(i1, i6);
32433 0 : STACKTOP = i2;
32434 0 : return 1;
32435 0 : }
32436 0 : return 0;
32437 1 : }
32438 1 : function _luaC_changemode(i2, i6) {
32439 0 : i2 = i2 | 0;
32440 0 : i6 = i6 | 0;
32441 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0;
32442 0 : i1 = STACKTOP;
32443 0 : i3 = i2 + 12 | 0;
32444 0 : i5 = HEAP32[i3 >> 2] | 0;
32445 0 : i4 = i5 + 62 | 0;
32446 0 : if ((HEAPU8[i4] | 0) == (i6 | 0)) {
32447 0 : STACKTOP = i1;
32448 0 : return;
32449 0 : }
32450 0 : if ((i6 | 0) == 2) {
32451 0 : i3 = i5 + 61 | 0;
32452 0 : if ((HEAP8[i3] | 0) != 0) {
32453 0 : do {
32454 0 : _singlestep(i2) | 0;
32455 0 : } while ((HEAP8[i3] | 0) != 0);
32456 0 : }
32457 0 : HEAP32[i5 + 20 >> 2] = (HEAP32[i5 + 12 >> 2] | 0) + (HEAP32[i5 + 8 >> 2] | 0);
32458 0 : HEAP8[i4] = 2;
32459 0 : STACKTOP = i1;
32460 0 : return;
32461 0 : }
32462 0 : HEAP8[i4] = 0;
32463 0 : i4 = HEAP32[i3 >> 2] | 0;
32464 0 : HEAP8[i4 + 61 | 0] = 2;
32465 0 : HEAP32[i4 + 64 >> 2] = 0;
32466 0 : i5 = i4 + 72 | 0;
32467 0 : do {
32468 0 : i6 = _sweeplist(i2, i5, 1) | 0;
32469 0 : } while ((i6 | 0) == (i5 | 0));
32470 0 : HEAP32[i4 + 80 >> 2] = i6;
32471 0 : i5 = i4 + 68 | 0;
32472 0 : do {
32473 0 : i6 = _sweeplist(i2, i5, 1) | 0;
32474 0 : } while ((i6 | 0) == (i5 | 0));
32475 0 : HEAP32[i4 + 76 >> 2] = i6;
32476 0 : i3 = (HEAP32[i3 >> 2] | 0) + 61 | 0;
32477 0 : if ((1 << HEAPU8[i3] & -29 | 0) != 0) {
32478 0 : STACKTOP = i1;
32479 0 : return;
32480 0 : }
32481 0 : do {
32482 0 : _singlestep(i2) | 0;
32483 0 : } while ((1 << HEAPU8[i3] & -29 | 0) == 0);
32484 0 : STACKTOP = i1;
32485 0 : return;
32486 1 : }
32487 1 : function _lua_rawget(i1, i5) {
32488 0 : i1 = i1 | 0;
32489 0 : i5 = i5 | 0;
32490 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
32491 0 : i2 = STACKTOP;
32492 0 : i4 = HEAP32[i1 + 16 >> 2] | 0;
32493 0 : do {
32494 0 : if ((i5 | 0) <= 0) {
32495 0 : if (!((i5 | 0) < -1000999)) {
32496 0 : i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
32497 0 : break;
32498 0 : }
32499 0 : if ((i5 | 0) == -1001e3) {
32500 0 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
32501 0 : break;
32502 0 : }
32503 0 : i5 = -1001e3 - i5 | 0;
32504 0 : i4 = HEAP32[i4 >> 2] | 0;
32505 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
32506 0 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
32507 0 : } else {
32508 0 : i3 = 5192;
32509 0 : }
32510 0 : } else {
32511 0 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
32512 0 : i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
32513 0 : }
32514 0 : } while (0);
32515 0 : i5 = i1 + 8 | 0;
32516 0 : i4 = _luaH_get(HEAP32[i3 >> 2] | 0, (HEAP32[i5 >> 2] | 0) + -16 | 0) | 0;
32517 0 : i5 = HEAP32[i5 >> 2] | 0;
32518 0 : i6 = i4;
32519 0 : i1 = HEAP32[i6 + 4 >> 2] | 0;
32520 0 : i3 = i5 + -16 | 0;
32521 0 : HEAP32[i3 >> 2] = HEAP32[i6 >> 2];
32522 0 : HEAP32[i3 + 4 >> 2] = i1;
32523 0 : HEAP32[i5 + -8 >> 2] = HEAP32[i4 + 8 >> 2];
32524 0 : STACKTOP = i2;
32525 0 : return;
32526 1 : }
32527 1 : function _lua_isstring(i2, i4) {
32528 0 : i2 = i2 | 0;
32529 0 : i4 = i4 | 0;
32530 0 : var i1 = 0, i3 = 0;
32531 0 : i1 = STACKTOP;
32532 0 : i3 = HEAP32[i2 + 16 >> 2] | 0;
32533 0 : do {
32534 0 : if ((i4 | 0) <= 0) {
32535 0 : if (!((i4 | 0) < -1000999)) {
32536 0 : i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
32537 0 : break;
32538 0 : }
32539 0 : if ((i4 | 0) == -1001e3) {
32540 0 : i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
32541 0 : break;
32542 0 : }
32543 0 : i2 = -1001e3 - i4 | 0;
32544 0 : i3 = HEAP32[i3 >> 2] | 0;
32545 0 : if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
32546 0 : i4 = 0;
32547 0 : i4 = i4 & 1;
32548 0 : STACKTOP = i1;
32549 0 : return i4 | 0;
32550 0 : }
32551 0 : i3 = HEAP32[i3 >> 2] | 0;
32552 0 : if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
32553 0 : i4 = 0;
32554 0 : i4 = i4 & 1;
32555 0 : STACKTOP = i1;
32556 0 : return i4 | 0;
32557 0 : } else {
32558 0 : i2 = i3 + (i2 + -1 << 4) + 16 | 0;
32559 0 : break;
32560 0 : }
32561 0 : } else {
32562 0 : i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
32563 0 : i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
32564 0 : }
32565 0 : } while (0);
32566 0 : if ((i2 | 0) == 5192) {
32567 0 : i4 = 0;
32568 0 : i4 = i4 & 1;
32569 0 : STACKTOP = i1;
32570 0 : return i4 | 0;
32571 0 : }
32572 0 : i4 = ((HEAP32[i2 + 8 >> 2] & 15) + -3 | 0) >>> 0 < 2;
32573 0 : i4 = i4 & 1;
32574 0 : STACKTOP = i1;
32575 0 : return i4 | 0;
32576 1 : }
32577 143052 : function _setnodevector(i5, i1, i3) {
32578 143052 : i5 = i5 | 0;
32579 143052 : i1 = i1 | 0;
32580 143052 : i3 = i3 | 0;
32581 143052 : var i2 = 0, i4 = 0, i6 = 0, i7 = 0;
32582 143052 : i2 = STACKTOP;
32583 143052 : STACKTOP = STACKTOP + 16 | 0;
32584 143052 : if ((i3 | 0) == 0) {
32585 143052 : HEAP32[i1 + 16 >> 2] = 8016;
32586 143052 : i6 = 0;
32587 143052 : i7 = 8016;
32588 143052 : i4 = 0;
32589 143052 : i5 = i1 + 7 | 0;
32590 143052 : HEAP8[i5] = i4;
32591 143052 : i6 = i7 + (i6 << 5) | 0;
32592 143052 : i7 = i1 + 20 | 0;
32593 143052 : HEAP32[i7 >> 2] = i6;
32594 143052 : STACKTOP = i2;
32595 143052 : return;
32596 143052 : }
32597 143052 : i4 = _luaO_ceillog2(i3) | 0;
32598 143052 : if ((i4 | 0) > 30) {
32599 143052 : _luaG_runerror(i5, 8048, i2);
32600 143052 : }
32601 143052 : i3 = 1 << i4;
32602 143052 : if ((i3 + 1 | 0) >>> 0 > 134217727) {
32603 143052 : _luaM_toobig(i5);
32604 143052 : }
32605 143052 : i6 = _luaM_realloc_(i5, 0, 0, i3 << 5) | 0;
32606 143052 : i5 = i1 + 16 | 0;
32607 143052 : HEAP32[i5 >> 2] = i6;
32608 143052 : if ((i3 | 0) > 0) {
32609 143052 : i7 = 0;
32610 143052 : do {
32611 143052 : HEAP32[i6 + (i7 << 5) + 28 >> 2] = 0;
32612 143052 : HEAP32[i6 + (i7 << 5) + 24 >> 2] = 0;
32613 143052 : HEAP32[i6 + (i7 << 5) + 8 >> 2] = 0;
32614 143052 : i7 = i7 + 1 | 0;
32615 143052 : i6 = HEAP32[i5 >> 2] | 0;
32616 143052 : } while ((i7 | 0) != (i3 | 0));
32617 143052 : }
32618 143052 : i7 = i3;
32619 143052 : i4 = i4 & 255;
32620 143052 : i5 = i1 + 7 | 0;
32621 143052 : HEAP8[i5] = i4;
32622 143052 : i6 = i6 + (i7 << 5) | 0;
32623 143052 : i7 = i1 + 20 | 0;
32624 143052 : HEAP32[i7 >> 2] = i6;
32625 143052 : STACKTOP = i2;
32626 143052 : return;
32627 143052 : }
32628 37 : function _lua_pushvalue(i1, i5) {
32629 37 : i1 = i1 | 0;
32630 37 : i5 = i5 | 0;
32631 37 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
32632 37 : i2 = STACKTOP;
32633 37 : i4 = HEAP32[i1 + 16 >> 2] | 0;
32634 37 : do {
32635 37 : if ((i5 | 0) <= 0) {
32636 37 : if (!((i5 | 0) < -1000999)) {
32637 37 : i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
32638 37 : break;
32639 37 : }
32640 37 : if ((i5 | 0) == -1001e3) {
32641 37 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
32642 37 : break;
32643 37 : }
32644 37 : i5 = -1001e3 - i5 | 0;
32645 37 : i4 = HEAP32[i4 >> 2] | 0;
32646 37 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
32647 37 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
32648 37 : } else {
32649 37 : i3 = 5192;
32650 37 : }
32651 37 : } else {
32652 37 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
32653 37 : i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
32654 37 : }
32655 37 : } while (0);
32656 37 : i5 = i1 + 8 | 0;
32657 37 : i4 = HEAP32[i5 >> 2] | 0;
32658 37 : i7 = i3;
32659 37 : i6 = HEAP32[i7 + 4 >> 2] | 0;
32660 37 : i1 = i4;
32661 37 : HEAP32[i1 >> 2] = HEAP32[i7 >> 2];
32662 37 : HEAP32[i1 + 4 >> 2] = i6;
32663 37 : HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
32664 37 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
32665 37 : STACKTOP = i2;
32666 37 : return;
32667 37 : }
32668 12 : function _luaL_setfuncs(i3, i6, i1) {
32669 12 : i3 = i3 | 0;
32670 12 : i6 = i6 | 0;
32671 12 : i1 = i1 | 0;
32672 12 : var i2 = 0, i4 = 0, i5 = 0, i7 = 0;
32673 12 : i2 = STACKTOP;
32674 12 : STACKTOP = STACKTOP + 16 | 0;
32675 12 : i4 = i2;
32676 12 : _luaL_checkversion_(i3, 502.0);
32677 12 : if ((_lua_checkstack(i3, i1 + 20 | 0) | 0) == 0) {
32678 12 : HEAP32[i4 >> 2] = 1472;
32679 12 : _luaL_error(i3, 1216, i4) | 0;
32680 12 : }
32681 12 : if ((HEAP32[i6 >> 2] | 0) == 0) {
32682 12 : i7 = ~i1;
32683 12 : _lua_settop(i3, i7);
32684 12 : STACKTOP = i2;
32685 12 : return;
32686 12 : }
32687 12 : i4 = -2 - i1 | 0;
32688 12 : i5 = 0 - i1 | 0;
32689 12 : if ((i1 | 0) <= 0) {
32690 12 : do {
32691 12 : _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
32692 12 : _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
32693 12 : i6 = i6 + 8 | 0;
32694 12 : } while ((HEAP32[i6 >> 2] | 0) != 0);
32695 12 : i7 = ~i1;
32696 12 : _lua_settop(i3, i7);
32697 12 : STACKTOP = i2;
32698 12 : return;
32699 12 : }
32700 12 : do {
32701 12 : i7 = 0;
32702 12 : do {
32703 12 : _lua_pushvalue(i3, i5);
32704 12 : i7 = i7 + 1 | 0;
32705 12 : } while ((i7 | 0) != (i1 | 0));
32706 12 : _lua_pushcclosure(i3, HEAP32[i6 + 4 >> 2] | 0, i1);
32707 12 : _lua_setfield(i3, i4, HEAP32[i6 >> 2] | 0);
32708 12 : i6 = i6 + 8 | 0;
32709 12 : } while ((HEAP32[i6 >> 2] | 0) != 0);
32710 12 : i7 = ~i1;
32711 12 : _lua_settop(i3, i7);
32712 12 : STACKTOP = i2;
32713 12 : return;
32714 12 : }
32715 15 : function _lua_touserdata(i3, i5) {
32716 15 : i3 = i3 | 0;
32717 15 : i5 = i5 | 0;
32718 15 : var i1 = 0, i2 = 0, i4 = 0;
32719 15 : i1 = STACKTOP;
32720 15 : i4 = HEAP32[i3 + 16 >> 2] | 0;
32721 15 : do {
32722 15 : if ((i5 | 0) <= 0) {
32723 15 : if (!((i5 | 0) < -1000999)) {
32724 15 : i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
32725 15 : break;
32726 15 : }
32727 15 : if ((i5 | 0) == -1001e3) {
32728 15 : i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
32729 15 : break;
32730 15 : }
32731 15 : i3 = -1001e3 - i5 | 0;
32732 15 : i4 = HEAP32[i4 >> 2] | 0;
32733 15 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
32734 15 : i2 = i2 + (i3 + -1 << 4) + 16 | 0;
32735 15 : } else {
32736 15 : i2 = 5192;
32737 15 : }
32738 15 : } else {
32739 15 : i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
32740 15 : i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
32741 15 : }
32742 15 : } while (0);
32743 15 : i3 = HEAP32[i2 + 8 >> 2] & 15;
32744 15 : if ((i3 | 0) == 2) {
32745 15 : i5 = HEAP32[i2 >> 2] | 0;
32746 15 : STACKTOP = i1;
32747 15 : return i5 | 0;
32748 15 : } else if ((i3 | 0) == 7) {
32749 15 : i5 = (HEAP32[i2 >> 2] | 0) + 24 | 0;
32750 15 : STACKTOP = i1;
32751 15 : return i5 | 0;
32752 15 : } else {
32753 15 : i5 = 0;
32754 15 : STACKTOP = i1;
32755 15 : return i5 | 0;
32756 15 : }
32757 15 : return 0;
32758 15 : }
32759 1 : function _luaL_checkoption(i2, i3, i6, i4) {
32760 0 : i2 = i2 | 0;
32761 0 : i3 = i3 | 0;
32762 0 : i6 = i6 | 0;
32763 0 : i4 = i4 | 0;
32764 0 : var i1 = 0, i5 = 0, i7 = 0, i8 = 0, i9 = 0;
32765 0 : i1 = STACKTOP;
32766 0 : STACKTOP = STACKTOP + 16 | 0;
32767 0 : i5 = i1;
32768 0 : if ((i6 | 0) == 0) {
32769 0 : i6 = _lua_tolstring(i2, i3, 0) | 0;
32770 0 : if ((i6 | 0) == 0) {
32771 0 : i9 = _lua_typename(i2, 4) | 0;
32772 0 : i6 = _lua_typename(i2, _lua_type(i2, i3) | 0) | 0;
32773 0 : HEAP32[i5 >> 2] = i9;
32774 0 : HEAP32[i5 + 4 >> 2] = i6;
32775 0 : _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1744, i5) | 0) | 0;
32776 0 : i6 = 0;
32777 0 : }
32778 0 : } else {
32779 0 : i6 = _luaL_optlstring(i2, i3, i6, 0) | 0;
32780 0 : }
32781 0 : i9 = HEAP32[i4 >> 2] | 0;
32782 0 : L6 : do {
32783 0 : if ((i9 | 0) != 0) {
32784 0 : i8 = 0;
32785 0 : while (1) {
32786 0 : i7 = i8 + 1 | 0;
32787 0 : if ((_strcmp(i9, i6) | 0) == 0) {
32788 0 : break;
32789 0 : }
32790 0 : i9 = HEAP32[i4 + (i7 << 2) >> 2] | 0;
32791 0 : if ((i9 | 0) == 0) {
32792 0 : break L6;
32793 0 : } else {
32794 0 : i8 = i7;
32795 0 : }
32796 0 : }
32797 0 : STACKTOP = i1;
32798 0 : return i8 | 0;
32799 0 : }
32800 0 : } while (0);
32801 0 : HEAP32[i5 >> 2] = i6;
32802 0 : i9 = _luaL_argerror(i2, i3, _lua_pushfstring(i2, 1192, i5) | 0) | 0;
32803 0 : STACKTOP = i1;
32804 0 : return i9 | 0;
32805 1 : }
32806 1 : function _lua_toboolean(i3, i5) {
32807 1 : i3 = i3 | 0;
32808 1 : i5 = i5 | 0;
32809 1 : var i1 = 0, i2 = 0, i4 = 0;
32810 1 : i1 = STACKTOP;
32811 1 : i4 = HEAP32[i3 + 16 >> 2] | 0;
32812 1 : do {
32813 1 : if ((i5 | 0) <= 0) {
32814 1 : if (!((i5 | 0) < -1000999)) {
32815 1 : i3 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
32816 1 : break;
32817 1 : }
32818 1 : if ((i5 | 0) == -1001e3) {
32819 1 : i3 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
32820 1 : break;
32821 1 : }
32822 1 : i3 = -1001e3 - i5 | 0;
32823 1 : i4 = HEAP32[i4 >> 2] | 0;
32824 1 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
32825 1 : i3 = i2 + (i3 + -1 << 4) + 16 | 0;
32826 1 : } else {
32827 1 : i3 = 5192;
32828 1 : }
32829 1 : } else {
32830 1 : i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
32831 1 : i3 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
32832 1 : }
32833 1 : } while (0);
32834 1 : i2 = HEAP32[i3 + 8 >> 2] | 0;
32835 1 : if ((i2 | 0) == 0) {
32836 1 : i5 = 0;
32837 1 : i5 = i5 & 1;
32838 1 : STACKTOP = i1;
32839 1 : return i5 | 0;
32840 1 : }
32841 1 : if ((i2 | 0) != 1) {
32842 1 : i5 = 1;
32843 1 : i5 = i5 & 1;
32844 1 : STACKTOP = i1;
32845 1 : return i5 | 0;
32846 1 : }
32847 1 : i5 = (HEAP32[i3 >> 2] | 0) != 0;
32848 1 : i5 = i5 & 1;
32849 1 : STACKTOP = i1;
32850 1 : return i5 | 0;
32851 1 : }
32852 33 : function _lua_getfield(i1, i6, i3) {
32853 33 : i1 = i1 | 0;
32854 33 : i6 = i6 | 0;
32855 33 : i3 = i3 | 0;
32856 33 : var i2 = 0, i4 = 0, i5 = 0;
32857 33 : i2 = STACKTOP;
32858 33 : i5 = HEAP32[i1 + 16 >> 2] | 0;
32859 33 : do {
32860 33 : if ((i6 | 0) <= 0) {
32861 33 : if (!((i6 | 0) < -1000999)) {
32862 33 : i4 = (HEAP32[i1 + 8 >> 2] | 0) + (i6 << 4) | 0;
32863 33 : break;
32864 33 : }
32865 33 : if ((i6 | 0) == -1001e3) {
32866 33 : i4 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
32867 33 : break;
32868 33 : }
32869 33 : i6 = -1001e3 - i6 | 0;
32870 33 : i5 = HEAP32[i5 >> 2] | 0;
32871 33 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i4 = HEAP32[i5 >> 2] | 0, (i6 | 0) <= (HEAPU8[i4 + 6 | 0] | 0 | 0)) : 0) {
32872 33 : i4 = i4 + (i6 + -1 << 4) + 16 | 0;
32873 33 : } else {
32874 33 : i4 = 5192;
32875 33 : }
32876 33 : } else {
32877 33 : i4 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
32878 33 : i4 = i4 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i4 : 5192;
32879 33 : }
32880 33 : } while (0);
32881 33 : i5 = i1 + 8 | 0;
32882 33 : i6 = HEAP32[i5 >> 2] | 0;
32883 33 : i3 = _luaS_new(i1, i3) | 0;
32884 33 : HEAP32[i6 >> 2] = i3;
32885 33 : HEAP32[i6 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
32886 33 : i6 = HEAP32[i5 >> 2] | 0;
32887 33 : HEAP32[i5 >> 2] = i6 + 16;
32888 33 : _luaV_gettable(i1, i4, i6, i6);
32889 33 : STACKTOP = i2;
32890 33 : return;
32891 33 : }
32892 1 : function _luaL_argerror(i1, i6, i3) {
32893 0 : i1 = i1 | 0;
32894 0 : i6 = i6 | 0;
32895 0 : i3 = i3 | 0;
32896 0 : var i2 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
32897 0 : i4 = STACKTOP;
32898 0 : STACKTOP = STACKTOP + 112 | 0;
32899 0 : i2 = i4;
32900 0 : i5 = i4 + 12 | 0;
32901 0 : if ((_lua_getstack(i1, 0, i5) | 0) == 0) {
32902 0 : HEAP32[i2 >> 2] = i6;
32903 0 : HEAP32[i2 + 4 >> 2] = i3;
32904 0 : i8 = _luaL_error(i1, 1040, i2) | 0;
32905 0 : STACKTOP = i4;
32906 0 : return i8 | 0;
32907 0 : }
32908 0 : _lua_getinfo(i1, 1064, i5) | 0;
32909 0 : if ((_strcmp(HEAP32[i5 + 8 >> 2] | 0, 1072) | 0) == 0) {
32910 0 : i6 = i6 + -1 | 0;
32911 0 : if ((i6 | 0) == 0) {
32912 0 : HEAP32[i2 >> 2] = HEAP32[i5 + 4 >> 2];
32913 0 : HEAP32[i2 + 4 >> 2] = i3;
32914 0 : i8 = _luaL_error(i1, 1080, i2) | 0;
32915 0 : STACKTOP = i4;
32916 0 : return i8 | 0;
32917 0 : }
32918 0 : }
32919 0 : i7 = i5 + 4 | 0;
32920 0 : i8 = HEAP32[i7 >> 2] | 0;
32921 0 : if ((i8 | 0) == 0) {
32922 0 : if ((_pushglobalfuncname(i1, i5) | 0) == 0) {
32923 0 : i8 = 1112;
32924 0 : } else {
32925 0 : i8 = _lua_tolstring(i1, -1, 0) | 0;
32926 0 : }
32927 0 : HEAP32[i7 >> 2] = i8;
32928 0 : }
32929 0 : HEAP32[i2 >> 2] = i6;
32930 0 : HEAP32[i2 + 4 >> 2] = i8;
32931 0 : HEAP32[i2 + 8 >> 2] = i3;
32932 0 : i8 = _luaL_error(i1, 1120, i2) | 0;
32933 0 : STACKTOP = i4;
32934 0 : return i8 | 0;
32935 1 : }
32936 1 : function _match_class(i3, i2) {
32937 0 : i3 = i3 | 0;
32938 0 : i2 = i2 | 0;
32939 0 : var i1 = 0;
32940 0 : i1 = STACKTOP;
32941 0 : switch (_tolower(i2 | 0) | 0) {
32942 0 : case 117:
32943 0 : {
32944 0 : i3 = _isupper(i3 | 0) | 0;
32945 0 : break;
32946 0 : }
32947 0 : case 97:
32948 0 : {
32949 0 : i3 = _isalpha(i3 | 0) | 0;
32950 0 : break;
32951 0 : }
32952 0 : case 99:
32953 0 : {
32954 0 : i3 = _iscntrl(i3 | 0) | 0;
32955 0 : break;
32956 0 : }
32957 0 : case 120:
32958 0 : {
32959 0 : i3 = _isxdigit(i3 | 0) | 0;
32960 0 : break;
32961 0 : }
32962 0 : case 119:
32963 0 : {
32964 0 : i3 = _isalnum(i3 | 0) | 0;
32965 0 : break;
32966 0 : }
32967 0 : case 112:
32968 0 : {
32969 0 : i3 = _ispunct(i3 | 0) | 0;
32970 0 : break;
32971 0 : }
32972 0 : case 100:
32973 0 : {
32974 0 : i3 = (i3 + -48 | 0) >>> 0 < 10 | 0;
32975 0 : break;
32976 0 : }
32977 0 : case 108:
32978 0 : {
32979 0 : i3 = _islower(i3 | 0) | 0;
32980 0 : break;
32981 0 : }
32982 0 : case 122:
32983 0 : {
32984 0 : i3 = (i3 | 0) == 0 | 0;
32985 0 : break;
32986 0 : }
32987 0 : case 103:
32988 0 : {
32989 0 : i3 = _isgraph(i3 | 0) | 0;
32990 0 : break;
32991 0 : }
32992 0 : case 115:
32993 0 : {
32994 0 : i3 = _isspace(i3 | 0) | 0;
32995 0 : break;
32996 0 : }
32997 0 : default:
32998 0 : {
32999 0 : i3 = (i2 | 0) == (i3 | 0) | 0;
33000 0 : STACKTOP = i1;
33001 0 : return i3 | 0;
33002 0 : }
33003 0 : }
33004 0 : if ((_islower(i2 | 0) | 0) != 0) {
33005 0 : STACKTOP = i1;
33006 0 : return i3 | 0;
33007 0 : }
33008 0 : i3 = (i3 | 0) == 0 | 0;
33009 0 : STACKTOP = i1;
33010 0 : return i3 | 0;
33011 1 : }
33012 11 : function _condjump(i1, i3, i6, i4, i5) {
33013 11 : i1 = i1 | 0;
33014 11 : i3 = i3 | 0;
33015 11 : i6 = i6 | 0;
33016 11 : i4 = i4 | 0;
33017 11 : i5 = i5 | 0;
33018 11 : var i2 = 0, i7 = 0, i8 = 0, i9 = 0;
33019 11 : i2 = STACKTOP;
33020 11 : _luaK_code(i1, i6 << 6 | i3 | i4 << 23 | i5 << 14) | 0;
33021 11 : i3 = i1 + 28 | 0;
33022 11 : i6 = HEAP32[i3 >> 2] | 0;
33023 11 : HEAP32[i3 >> 2] = -1;
33024 11 : i3 = _luaK_code(i1, 2147450903) | 0;
33025 11 : if ((i6 | 0) == -1) {
33026 11 : i9 = i3;
33027 11 : STACKTOP = i2;
33028 11 : return i9 | 0;
33029 11 : }
33030 11 : if ((i3 | 0) == -1) {
33031 11 : i9 = i6;
33032 11 : STACKTOP = i2;
33033 11 : return i9 | 0;
33034 11 : }
33035 11 : i8 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
33036 11 : i7 = i3;
33037 11 : while (1) {
33038 11 : i4 = i8 + (i7 << 2) | 0;
33039 11 : i5 = HEAP32[i4 >> 2] | 0;
33040 11 : i9 = (i5 >>> 14) + -131071 | 0;
33041 11 : if ((i9 | 0) == -1) {
33042 11 : break;
33043 11 : }
33044 11 : i9 = i7 + 1 + i9 | 0;
33045 11 : if ((i9 | 0) == -1) {
33046 11 : break;
33047 11 : } else {
33048 11 : i7 = i9;
33049 11 : }
33050 11 : }
33051 11 : i6 = i6 + ~i7 | 0;
33052 11 : if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
33053 11 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
33054 11 : }
33055 11 : HEAP32[i4 >> 2] = (i6 << 14) + 2147467264 | i5 & 16383;
33056 11 : i9 = i3;
33057 11 : STACKTOP = i2;
33058 11 : return i9 | 0;
33059 11 : }
33060 1 : function _skipcomment(i6, i1) {
33061 1 : i6 = i6 | 0;
33062 1 : i1 = i1 | 0;
33063 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
33064 1 : i2 = STACKTOP;
33065 1 : HEAP32[i6 >> 2] = 0;
33066 1 : i3 = i6 + 4 | 0;
33067 1 : i5 = 1712;
33068 1 : while (1) {
33069 1 : i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
33070 1 : if ((i7 | 0) == -1) {
33071 1 : i4 = 3;
33072 1 : break;
33073 1 : }
33074 1 : i8 = i5 + 1 | 0;
33075 1 : if ((i7 | 0) != (HEAPU8[i5] | 0)) {
33076 1 : break;
33077 1 : }
33078 1 : i5 = HEAP32[i6 >> 2] | 0;
33079 1 : HEAP32[i6 >> 2] = i5 + 1;
33080 1 : HEAP8[i6 + i5 + 8 | 0] = i7;
33081 1 : if ((HEAP8[i8] | 0) == 0) {
33082 1 : i4 = 6;
33083 1 : break;
33084 1 : } else {
33085 1 : i5 = i8;
33086 1 : }
33087 1 : }
33088 1 : if ((i4 | 0) == 3) {
33089 1 : HEAP32[i1 >> 2] = -1;
33090 1 : i8 = 0;
33091 1 : STACKTOP = i2;
33092 1 : return i8 | 0;
33093 1 : } else if ((i4 | 0) == 6) {
33094 1 : HEAP32[i6 >> 2] = 0;
33095 1 : i7 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
33096 1 : }
33097 1 : HEAP32[i1 >> 2] = i7;
33098 1 : if ((i7 | 0) != 35) {
33099 1 : i8 = 0;
33100 1 : STACKTOP = i2;
33101 1 : return i8 | 0;
33102 1 : }
33103 1 : do {
33104 1 : i8 = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
33105 1 : } while (!((i8 | 0) == 10 | (i8 | 0) == -1));
33106 1 : HEAP32[i1 >> 2] = _fgetc(HEAP32[i3 >> 2] | 0) | 0;
33107 1 : i8 = 1;
33108 1 : STACKTOP = i2;
33109 1 : return i8 | 0;
33110 1 : }
33111 1 : function _lua_isnumber(i4, i6) {
33112 0 : i4 = i4 | 0;
33113 0 : i6 = i6 | 0;
33114 0 : var i1 = 0, i2 = 0, i3 = 0, i5 = 0;
33115 0 : i1 = STACKTOP;
33116 0 : STACKTOP = STACKTOP + 16 | 0;
33117 0 : i2 = i1;
33118 0 : i5 = HEAP32[i4 + 16 >> 2] | 0;
33119 0 : do {
33120 0 : if ((i6 | 0) <= 0) {
33121 0 : if (!((i6 | 0) < -1000999)) {
33122 0 : i3 = (HEAP32[i4 + 8 >> 2] | 0) + (i6 << 4) | 0;
33123 0 : break;
33124 0 : }
33125 0 : if ((i6 | 0) == -1001e3) {
33126 0 : i3 = (HEAP32[i4 + 12 >> 2] | 0) + 40 | 0;
33127 0 : break;
33128 0 : }
33129 0 : i4 = -1001e3 - i6 | 0;
33130 0 : i5 = HEAP32[i5 >> 2] | 0;
33131 0 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
33132 0 : i3 = i3 + (i4 + -1 << 4) + 16 | 0;
33133 0 : } else {
33134 0 : i3 = 5192;
33135 0 : }
33136 0 : } else {
33137 0 : i3 = (HEAP32[i5 >> 2] | 0) + (i6 << 4) | 0;
33138 0 : i3 = i3 >>> 0 < (HEAP32[i4 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
33139 0 : }
33140 0 : } while (0);
33141 0 : if ((HEAP32[i3 + 8 >> 2] | 0) == 3) {
33142 0 : i6 = 1;
33143 0 : i6 = i6 & 1;
33144 0 : STACKTOP = i1;
33145 0 : return i6 | 0;
33146 0 : }
33147 0 : i6 = (_luaV_tonumber(i3, i2) | 0) != 0;
33148 0 : i6 = i6 & 1;
33149 0 : STACKTOP = i1;
33150 0 : return i6 | 0;
33151 1 : }
33152 1 : function ___shgetc(i3) {
33153 0 : i3 = i3 | 0;
33154 0 : var i1 = 0, i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
33155 0 : i2 = STACKTOP;
33156 0 : i7 = i3 + 104 | 0;
33157 0 : i6 = HEAP32[i7 >> 2] | 0;
33158 0 : if (!((i6 | 0) != 0 ? (HEAP32[i3 + 108 >> 2] | 0) >= (i6 | 0) : 0)) {
33159 0 : i8 = 3;
33160 0 : }
33161 0 : if ((i8 | 0) == 3 ? (i1 = ___uflow(i3) | 0, (i1 | 0) >= 0) : 0) {
33162 0 : i7 = HEAP32[i7 >> 2] | 0;
33163 0 : i6 = HEAP32[i3 + 8 >> 2] | 0;
33164 0 : if ((i7 | 0) != 0 ? (i4 = HEAP32[i3 + 4 >> 2] | 0, i5 = i7 - (HEAP32[i3 + 108 >> 2] | 0) + -1 | 0, (i6 - i4 | 0) > (i5 | 0)) : 0) {
33165 0 : HEAP32[i3 + 100 >> 2] = i4 + i5;
33166 0 : } else {
33167 0 : HEAP32[i3 + 100 >> 2] = i6;
33168 0 : }
33169 0 : i4 = HEAP32[i3 + 4 >> 2] | 0;
33170 0 : if ((i6 | 0) != 0) {
33171 0 : i8 = i3 + 108 | 0;
33172 0 : HEAP32[i8 >> 2] = i6 + 1 - i4 + (HEAP32[i8 >> 2] | 0);
33173 0 : }
33174 0 : i3 = i4 + -1 | 0;
33175 0 : if ((HEAPU8[i3] | 0 | 0) == (i1 | 0)) {
33176 0 : i8 = i1;
33177 0 : STACKTOP = i2;
33178 0 : return i8 | 0;
33179 0 : }
33180 0 : HEAP8[i3] = i1;
33181 0 : i8 = i1;
33182 0 : STACKTOP = i2;
33183 0 : return i8 | 0;
33184 0 : }
33185 0 : HEAP32[i3 + 100 >> 2] = 0;
33186 0 : i8 = -1;
33187 0 : STACKTOP = i2;
33188 0 : return i8 | 0;
33189 1 : }
33190 21 : function _lua_type(i2, i4) {
33191 21 : i2 = i2 | 0;
33192 21 : i4 = i4 | 0;
33193 21 : var i1 = 0, i3 = 0;
33194 21 : i1 = STACKTOP;
33195 21 : i3 = HEAP32[i2 + 16 >> 2] | 0;
33196 21 : do {
33197 21 : if ((i4 | 0) <= 0) {
33198 21 : if (!((i4 | 0) < -1000999)) {
33199 21 : i2 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
33200 21 : break;
33201 21 : }
33202 21 : if ((i4 | 0) == -1001e3) {
33203 21 : i2 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
33204 21 : break;
33205 21 : }
33206 21 : i2 = -1001e3 - i4 | 0;
33207 21 : i3 = HEAP32[i3 >> 2] | 0;
33208 21 : if ((HEAP32[i3 + 8 >> 2] | 0) == 22) {
33209 21 : i4 = -1;
33210 21 : STACKTOP = i1;
33211 21 : return i4 | 0;
33212 21 : }
33213 21 : i3 = HEAP32[i3 >> 2] | 0;
33214 21 : if ((i2 | 0) > (HEAPU8[i3 + 6 | 0] | 0 | 0)) {
33215 21 : i4 = -1;
33216 21 : STACKTOP = i1;
33217 21 : return i4 | 0;
33218 21 : } else {
33219 21 : i2 = i3 + (i2 + -1 << 4) + 16 | 0;
33220 21 : break;
33221 21 : }
33222 21 : } else {
33223 21 : i3 = (HEAP32[i3 >> 2] | 0) + (i4 << 4) | 0;
33224 21 : i2 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
33225 21 : }
33226 21 : } while (0);
33227 21 : if ((i2 | 0) == 5192) {
33228 21 : i4 = -1;
33229 21 : STACKTOP = i1;
33230 21 : return i4 | 0;
33231 21 : }
33232 21 : i4 = HEAP32[i2 + 8 >> 2] & 15;
33233 21 : STACKTOP = i1;
33234 21 : return i4 | 0;
33235 21 : }
33236 1 : function _g_iofile(i4, i1, i5) {
33237 0 : i4 = i4 | 0;
33238 0 : i1 = i1 | 0;
33239 0 : i5 = i5 | 0;
33240 0 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
33241 0 : i2 = STACKTOP;
33242 0 : STACKTOP = STACKTOP + 16 | 0;
33243 0 : i3 = i2;
33244 0 : if ((_lua_type(i4, 1) | 0) < 1) {
33245 0 : _lua_getfield(i4, -1001e3, i1);
33246 0 : STACKTOP = i2;
33247 0 : return;
33248 0 : }
33249 0 : i6 = _lua_tolstring(i4, 1, 0) | 0;
33250 0 : if ((i6 | 0) != 0) {
33251 0 : i7 = _lua_newuserdata(i4, 8) | 0;
33252 0 : i8 = i7 + 4 | 0;
33253 0 : HEAP32[i8 >> 2] = 0;
33254 0 : _luaL_setmetatable(i4, 2832);
33255 0 : HEAP32[i7 >> 2] = 0;
33256 0 : HEAP32[i8 >> 2] = 156;
33257 0 : i5 = _fopen(i6 | 0, i5 | 0) | 0;
33258 0 : HEAP32[i7 >> 2] = i5;
33259 0 : if ((i5 | 0) == 0) {
33260 0 : i8 = _strerror(HEAP32[(___errno_location() | 0) >> 2] | 0) | 0;
33261 0 : HEAP32[i3 >> 2] = i6;
33262 0 : HEAP32[i3 + 4 >> 2] = i8;
33263 0 : _luaL_error(i4, 3520, i3) | 0;
33264 0 : }
33265 0 : } else {
33266 0 : if ((HEAP32[(_luaL_checkudata(i4, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
33267 0 : _luaL_error(i4, 3080, i3) | 0;
33268 0 : }
33269 0 : _lua_pushvalue(i4, 1);
33270 0 : }
33271 0 : _lua_setfield(i4, -1001e3, i1);
33272 0 : _lua_getfield(i4, -1001e3, i1);
33273 0 : STACKTOP = i2;
33274 0 : return;
33275 1 : }
33276 1 : function _lua_getlocal(i4, i5, i2) {
33277 0 : i4 = i4 | 0;
33278 0 : i5 = i5 | 0;
33279 0 : i2 = i2 | 0;
33280 0 : var i1 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
33281 0 : i1 = STACKTOP;
33282 0 : STACKTOP = STACKTOP + 16 | 0;
33283 0 : i3 = i1;
33284 0 : if ((i5 | 0) == 0) {
33285 0 : i3 = HEAP32[i4 + 8 >> 2] | 0;
33286 0 : if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
33287 0 : i5 = 0;
33288 0 : STACKTOP = i1;
33289 0 : return i5 | 0;
33290 0 : }
33291 0 : i5 = _luaF_getlocalname(HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i2, 0) | 0;
33292 0 : STACKTOP = i1;
33293 0 : return i5 | 0;
33294 0 : } else {
33295 0 : HEAP32[i3 >> 2] = 0;
33296 0 : i2 = _findlocal(i4, HEAP32[i5 + 96 >> 2] | 0, i2, i3) | 0;
33297 0 : if ((i2 | 0) == 0) {
33298 0 : i5 = 0;
33299 0 : STACKTOP = i1;
33300 0 : return i5 | 0;
33301 0 : }
33302 0 : i3 = HEAP32[i3 >> 2] | 0;
33303 0 : i5 = i4 + 8 | 0;
33304 0 : i4 = HEAP32[i5 >> 2] | 0;
33305 0 : i8 = i3;
33306 0 : i7 = HEAP32[i8 + 4 >> 2] | 0;
33307 0 : i6 = i4;
33308 0 : HEAP32[i6 >> 2] = HEAP32[i8 >> 2];
33309 0 : HEAP32[i6 + 4 >> 2] = i7;
33310 0 : HEAP32[i4 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
33311 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
33312 0 : i5 = i2;
33313 0 : STACKTOP = i1;
33314 0 : return i5 | 0;
33315 0 : }
33316 0 : return 0;
33317 1 : }
33318 13 : function _lua_checkstack(i7, i4) {
33319 13 : i7 = i7 | 0;
33320 13 : i4 = i4 | 0;
33321 13 : var i1 = 0, i2 = 0, i3 = 0, i5 = 0, i6 = 0, i8 = 0;
33322 13 : i1 = STACKTOP;
33323 13 : STACKTOP = STACKTOP + 16 | 0;
33324 13 : i3 = i1;
33325 13 : HEAP32[i3 >> 2] = i4;
33326 13 : i2 = HEAP32[i7 + 16 >> 2] | 0;
33327 13 : i5 = i7 + 8 | 0;
33328 13 : i6 = HEAP32[i5 >> 2] | 0;
33329 13 : i8 = i6;
33330 13 : do {
33331 13 : if (((HEAP32[i7 + 24 >> 2] | 0) - i8 >> 4 | 0) <= (i4 | 0)) {
33332 13 : if (((i8 - (HEAP32[i7 + 28 >> 2] | 0) >> 4) + 5 | 0) > (1e6 - i4 | 0)) {
33333 13 : i8 = 0;
33334 13 : STACKTOP = i1;
33335 13 : return i8 | 0;
33336 13 : }
33337 13 : i6 = (_luaD_rawrunprotected(i7, 2, i3) | 0) == 0;
33338 13 : if (i6) {
33339 13 : i5 = HEAP32[i5 >> 2] | 0;
33340 13 : i4 = HEAP32[i3 >> 2] | 0;
33341 13 : i3 = i6 & 1;
33342 13 : break;
33343 13 : } else {
33344 13 : i8 = 0;
33345 13 : STACKTOP = i1;
33346 13 : return i8 | 0;
33347 13 : }
33348 13 : } else {
33349 13 : i5 = i6;
33350 13 : i3 = 1;
33351 13 : }
33352 13 : } while (0);
33353 13 : i2 = i2 + 4 | 0;
33354 13 : i4 = i5 + (i4 << 4) | 0;
33355 13 : if (!((HEAP32[i2 >> 2] | 0) >>> 0 < i4 >>> 0)) {
33356 13 : i8 = i3;
33357 13 : STACKTOP = i1;
33358 13 : return i8 | 0;
33359 13 : }
33360 13 : HEAP32[i2 >> 2] = i4;
33361 13 : i8 = i3;
33362 13 : STACKTOP = i1;
33363 13 : return i8 | 0;
33364 13 : }
33365 79 : function _luaK_exp2nextreg(i1, i3) {
33366 79 : i1 = i1 | 0;
33367 79 : i3 = i3 | 0;
33368 79 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
33369 79 : i2 = STACKTOP;
33370 79 : _luaK_dischargevars(i1, i3);
33371 79 : if (((HEAP32[i3 >> 2] | 0) == 6 ? (i4 = HEAP32[i3 + 8 >> 2] | 0, (i4 & 256 | 0) == 0) : 0) ? (HEAPU8[i1 + 46 | 0] | 0 | 0) <= (i4 | 0) : 0) {
33372 79 : i7 = i1 + 48 | 0;
33373 79 : HEAP8[i7] = (HEAP8[i7] | 0) + -1 << 24 >> 24;
33374 79 : }
33375 79 : i4 = i1 + 48 | 0;
33376 79 : i5 = HEAP8[i4] | 0;
33377 79 : i6 = (i5 & 255) + 1 | 0;
33378 79 : i7 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
33379 79 : if (!(i6 >>> 0 > (HEAPU8[i7] | 0) >>> 0)) {
33380 79 : i7 = i5;
33381 79 : i7 = i7 & 255;
33382 79 : i7 = i7 + 1 | 0;
33383 79 : i6 = i7 & 255;
33384 79 : HEAP8[i4] = i6;
33385 79 : i7 = i7 & 255;
33386 79 : i7 = i7 + -1 | 0;
33387 79 : _exp2reg(i1, i3, i7);
33388 79 : STACKTOP = i2;
33389 79 : return;
33390 79 : }
33391 79 : if (i6 >>> 0 > 249) {
33392 79 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
33393 79 : }
33394 79 : HEAP8[i7] = i6;
33395 79 : i7 = HEAP8[i4] | 0;
33396 79 : i7 = i7 & 255;
33397 79 : i7 = i7 + 1 | 0;
33398 79 : i6 = i7 & 255;
33399 79 : HEAP8[i4] = i6;
33400 79 : i7 = i7 & 255;
33401 79 : i7 = i7 + -1 | 0;
33402 79 : _exp2reg(i1, i3, i7);
33403 79 : STACKTOP = i2;
33404 79 : return;
33405 79 : }
33406 1 : function _lua_next(i2, i4) {
33407 0 : i2 = i2 | 0;
33408 0 : i4 = i4 | 0;
33409 0 : var i1 = 0, i3 = 0, i5 = 0;
33410 0 : i1 = STACKTOP;
33411 0 : i5 = HEAP32[i2 + 16 >> 2] | 0;
33412 0 : do {
33413 0 : if ((i4 | 0) <= 0) {
33414 0 : if (!((i4 | 0) < -1000999)) {
33415 0 : i4 = (HEAP32[i2 + 8 >> 2] | 0) + (i4 << 4) | 0;
33416 0 : break;
33417 0 : }
33418 0 : if ((i4 | 0) == -1001e3) {
33419 0 : i4 = (HEAP32[i2 + 12 >> 2] | 0) + 40 | 0;
33420 0 : break;
33421 0 : }
33422 0 : i4 = -1001e3 - i4 | 0;
33423 0 : i5 = HEAP32[i5 >> 2] | 0;
33424 0 : if ((HEAP32[i5 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i5 >> 2] | 0, (i4 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
33425 0 : i4 = i3 + (i4 + -1 << 4) + 16 | 0;
33426 0 : } else {
33427 0 : i4 = 5192;
33428 0 : }
33429 0 : } else {
33430 0 : i3 = (HEAP32[i5 >> 2] | 0) + (i4 << 4) | 0;
33431 0 : i4 = i3 >>> 0 < (HEAP32[i2 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
33432 0 : }
33433 0 : } while (0);
33434 0 : i3 = i2 + 8 | 0;
33435 0 : i2 = _luaH_next(i2, HEAP32[i4 >> 2] | 0, (HEAP32[i3 >> 2] | 0) + -16 | 0) | 0;
33436 0 : i4 = HEAP32[i3 >> 2] | 0;
33437 0 : HEAP32[i3 >> 2] = (i2 | 0) == 0 ? i4 + -16 | 0 : i4 + 16 | 0;
33438 0 : STACKTOP = i1;
33439 0 : return i2 | 0;
33440 1 : }
33441 65 : function _inclinenumber(i1) {
33442 65 : i1 = i1 | 0;
33443 65 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
33444 65 : i2 = STACKTOP;
33445 65 : i4 = HEAP32[i1 >> 2] | 0;
33446 65 : i3 = i1 + 56 | 0;
33447 65 : i5 = HEAP32[i3 >> 2] | 0;
33448 65 : i6 = HEAP32[i5 >> 2] | 0;
33449 65 : HEAP32[i5 >> 2] = i6 + -1;
33450 65 : if ((i6 | 0) == 0) {
33451 65 : i5 = _luaZ_fill(i5) | 0;
33452 65 : } else {
33453 65 : i6 = i5 + 4 | 0;
33454 65 : i5 = HEAP32[i6 >> 2] | 0;
33455 65 : HEAP32[i6 >> 2] = i5 + 1;
33456 65 : i5 = HEAPU8[i5] | 0;
33457 65 : }
33458 65 : HEAP32[i1 >> 2] = i5;
33459 65 : if ((i5 | 0) == 13 | (i5 | 0) == 10 ? (i5 | 0) != (i4 | 0) : 0) {
33460 65 : i3 = HEAP32[i3 >> 2] | 0;
33461 65 : i6 = HEAP32[i3 >> 2] | 0;
33462 65 : HEAP32[i3 >> 2] = i6 + -1;
33463 65 : if ((i6 | 0) == 0) {
33464 65 : i3 = _luaZ_fill(i3) | 0;
33465 65 : } else {
33466 65 : i6 = i3 + 4 | 0;
33467 65 : i3 = HEAP32[i6 >> 2] | 0;
33468 65 : HEAP32[i6 >> 2] = i3 + 1;
33469 65 : i3 = HEAPU8[i3] | 0;
33470 65 : }
33471 65 : HEAP32[i1 >> 2] = i3;
33472 65 : }
33473 65 : i5 = i1 + 4 | 0;
33474 65 : i6 = HEAP32[i5 >> 2] | 0;
33475 65 : HEAP32[i5 >> 2] = i6 + 1;
33476 65 : if ((i6 | 0) > 2147483643) {
33477 65 : _luaX_syntaxerror(i1, 12560);
33478 65 : } else {
33479 65 : STACKTOP = i2;
33480 65 : return;
33481 65 : }
33482 65 : }
33483 1 : function _lua_yieldk(i5, i6, i1, i7) {
33484 0 : i5 = i5 | 0;
33485 0 : i6 = i6 | 0;
33486 0 : i1 = i1 | 0;
33487 0 : i7 = i7 | 0;
33488 0 : var i2 = 0, i3 = 0, i4 = 0;
33489 0 : i2 = STACKTOP;
33490 0 : STACKTOP = STACKTOP + 16 | 0;
33491 0 : i4 = i2;
33492 0 : i3 = HEAP32[i5 + 16 >> 2] | 0;
33493 0 : if ((HEAP16[i5 + 36 >> 1] | 0) != 0) {
33494 0 : if ((HEAP32[(HEAP32[i5 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i5 | 0)) {
33495 0 : _luaG_runerror(i5, 2312, i4);
33496 0 : } else {
33497 0 : _luaG_runerror(i5, 2264, i4);
33498 0 : }
33499 0 : }
33500 0 : HEAP8[i5 + 6 | 0] = 1;
33501 0 : HEAP32[i3 + 20 >> 2] = (HEAP32[i3 >> 2] | 0) - (HEAP32[i5 + 28 >> 2] | 0);
33502 0 : if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
33503 0 : STACKTOP = i2;
33504 0 : return 0;
33505 0 : }
33506 0 : HEAP32[i3 + 28 >> 2] = i7;
33507 0 : if ((i7 | 0) == 0) {
33508 0 : i4 = i5 + 8 | 0;
33509 0 : i4 = HEAP32[i4 >> 2] | 0;
33510 0 : i7 = ~i6;
33511 0 : i7 = i4 + (i7 << 4) | 0;
33512 0 : HEAP32[i3 >> 2] = i7;
33513 0 : _luaD_throw(i5, 1);
33514 0 : }
33515 0 : HEAP32[i3 + 24 >> 2] = i1;
33516 0 : i4 = i5 + 8 | 0;
33517 0 : i4 = HEAP32[i4 >> 2] | 0;
33518 0 : i7 = ~i6;
33519 0 : i7 = i4 + (i7 << 4) | 0;
33520 0 : HEAP32[i3 >> 2] = i7;
33521 0 : _luaD_throw(i5, 1);
33522 0 : return 0;
33523 1 : }
33524 16 : function _luaH_getint(i4, i6) {
33525 16 : i4 = i4 | 0;
33526 16 : i6 = i6 | 0;
33527 16 : var i1 = 0, i2 = 0, d3 = 0.0, i5 = 0, i7 = 0;
33528 16 : i1 = STACKTOP;
33529 16 : STACKTOP = STACKTOP + 16 | 0;
33530 16 : i5 = i1;
33531 16 : i7 = i6 + -1 | 0;
33532 16 : if (i7 >>> 0 < (HEAP32[i4 + 28 >> 2] | 0) >>> 0) {
33533 16 : i7 = (HEAP32[i4 + 12 >> 2] | 0) + (i7 << 4) | 0;
33534 16 : STACKTOP = i1;
33535 16 : return i7 | 0;
33536 16 : }
33537 16 : d3 = +(i6 | 0);
33538 16 : HEAPF64[i5 >> 3] = d3 + 1.0;
33539 16 : i5 = (HEAP32[i5 + 4 >> 2] | 0) + (HEAP32[i5 >> 2] | 0) | 0;
33540 16 : if ((i5 | 0) < 0) {
33541 16 : i6 = 0 - i5 | 0;
33542 16 : i5 = (i5 | 0) == (i6 | 0) ? 0 : i6;
33543 16 : }
33544 16 : i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((i5 | 0) % ((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 | 1 | 0) | 0) << 5) | 0;
33545 16 : while (1) {
33546 16 : if ((HEAP32[i4 + 24 >> 2] | 0) == 3 ? +HEAPF64[i4 + 16 >> 3] == d3 : 0) {
33547 16 : break;
33548 16 : }
33549 16 : i4 = HEAP32[i4 + 28 >> 2] | 0;
33550 16 : if ((i4 | 0) == 0) {
33551 16 : i4 = 5192;
33552 16 : i2 = 10;
33553 16 : break;
33554 16 : }
33555 16 : }
33556 16 : if ((i2 | 0) == 10) {
33557 16 : STACKTOP = i1;
33558 16 : return i4 | 0;
33559 16 : }
33560 16 : i7 = i4;
33561 16 : STACKTOP = i1;
33562 16 : return i7 | 0;
33563 16 : }
33564 13 : function _luaL_checkversion_(i1, d4) {
33565 13 : i1 = i1 | 0;
33566 13 : d4 = +d4;
33567 13 : var i2 = 0, i3 = 0, i5 = 0, d6 = 0.0;
33568 13 : i2 = STACKTOP;
33569 13 : STACKTOP = STACKTOP + 16 | 0;
33570 13 : i3 = i2;
33571 13 : i5 = _lua_version(i1) | 0;
33572 13 : if ((i5 | 0) == (_lua_version(0) | 0)) {
33573 13 : d6 = +HEAPF64[i5 >> 3];
33574 13 : if (d6 != d4) {
33575 13 : HEAPF64[tempDoublePtr >> 3] = d4;
33576 13 : HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
33577 13 : HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
33578 13 : i5 = i3 + 8 | 0;
33579 13 : HEAPF64[tempDoublePtr >> 3] = d6;
33580 13 : HEAP32[i5 >> 2] = HEAP32[tempDoublePtr >> 2];
33581 13 : HEAP32[i5 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
33582 13 : _luaL_error(i1, 1528, i3) | 0;
33583 13 : }
33584 13 : } else {
33585 13 : _luaL_error(i1, 1496, i3) | 0;
33586 13 : }
33587 13 : _lua_pushnumber(i1, -4660.0);
33588 13 : if ((_lua_tointegerx(i1, -1, 0) | 0) == -4660 ? (_lua_tounsignedx(i1, -1, 0) | 0) == -4660 : 0) {
33589 13 : _lua_settop(i1, -2);
33590 13 : STACKTOP = i2;
33591 13 : return;
33592 13 : }
33593 13 : _luaL_error(i1, 1584, i3) | 0;
33594 13 : _lua_settop(i1, -2);
33595 13 : STACKTOP = i2;
33596 13 : return;
33597 13 : }
33598 1 : function _math_random(i1) {
33599 0 : i1 = i1 | 0;
33600 0 : var i2 = 0, d3 = 0.0, i4 = 0, i5 = 0, d6 = 0.0, d7 = 0.0;
33601 0 : i2 = STACKTOP;
33602 0 : STACKTOP = STACKTOP + 16 | 0;
33603 0 : i4 = i2;
33604 0 : d3 = +((_rand() | 0) % 2147483647 | 0 | 0) / 2147483647.0;
33605 0 : i5 = _lua_gettop(i1) | 0;
33606 0 : if ((i5 | 0) == 0) {
33607 0 : _lua_pushnumber(i1, d3);
33608 0 : i5 = 1;
33609 0 : STACKTOP = i2;
33610 0 : return i5 | 0;
33611 0 : } else if ((i5 | 0) == 1) {
33612 0 : d6 = +_luaL_checknumber(i1, 1);
33613 0 : if (!(d6 >= 1.0)) {
33614 0 : _luaL_argerror(i1, 1, 4056) | 0;
33615 0 : }
33616 0 : _lua_pushnumber(i1, +Math_floor(+(d3 * d6)) + 1.0);
33617 0 : i5 = 1;
33618 0 : STACKTOP = i2;
33619 0 : return i5 | 0;
33620 0 : } else if ((i5 | 0) == 2) {
33621 0 : d6 = +_luaL_checknumber(i1, 1);
33622 0 : d7 = +_luaL_checknumber(i1, 2);
33623 0 : if (!(d6 <= d7)) {
33624 0 : _luaL_argerror(i1, 2, 4056) | 0;
33625 0 : }
33626 0 : _lua_pushnumber(i1, d6 + +Math_floor(+(d3 * (d7 - d6 + 1.0))));
33627 0 : i5 = 1;
33628 0 : STACKTOP = i2;
33629 0 : return i5 | 0;
33630 0 : } else {
33631 0 : i5 = _luaL_error(i1, 4080, i4) | 0;
33632 0 : STACKTOP = i2;
33633 0 : return i5 | 0;
33634 0 : }
33635 0 : return 0;
33636 1 : }
33637 1 : function _push_onecapture(i2, i3, i4, i6) {
33638 0 : i2 = i2 | 0;
33639 0 : i3 = i3 | 0;
33640 0 : i4 = i4 | 0;
33641 0 : i6 = i6 | 0;
33642 0 : var i1 = 0, i5 = 0;
33643 0 : i1 = STACKTOP;
33644 0 : STACKTOP = STACKTOP + 16 | 0;
33645 0 : i5 = i1;
33646 0 : if ((HEAP32[i2 + 20 >> 2] | 0) <= (i3 | 0)) {
33647 0 : i2 = HEAP32[i2 + 16 >> 2] | 0;
33648 0 : if ((i3 | 0) == 0) {
33649 0 : _lua_pushlstring(i2, i4, i6 - i4 | 0) | 0;
33650 0 : STACKTOP = i1;
33651 0 : return;
33652 0 : } else {
33653 0 : _luaL_error(i2, 7224, i5) | 0;
33654 0 : STACKTOP = i1;
33655 0 : return;
33656 0 : }
33657 0 : }
33658 0 : i4 = HEAP32[i2 + (i3 << 3) + 28 >> 2] | 0;
33659 0 : if (!((i4 | 0) == -1)) {
33660 0 : i5 = HEAP32[i2 + 16 >> 2] | 0;
33661 0 : i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
33662 0 : if ((i4 | 0) == -2) {
33663 0 : _lua_pushinteger(i5, i3 + 1 - (HEAP32[i2 + 4 >> 2] | 0) | 0);
33664 0 : STACKTOP = i1;
33665 0 : return;
33666 0 : }
33667 0 : } else {
33668 0 : i6 = i2 + 16 | 0;
33669 0 : _luaL_error(HEAP32[i6 >> 2] | 0, 7248, i5) | 0;
33670 0 : i5 = HEAP32[i6 >> 2] | 0;
33671 0 : i3 = HEAP32[i2 + (i3 << 3) + 24 >> 2] | 0;
33672 0 : }
33673 0 : _lua_pushlstring(i5, i3, i4) | 0;
33674 0 : STACKTOP = i1;
33675 0 : return;
33676 1 : }
33677 1 : function _luaK_nil(i7, i6, i5) {
33678 0 : i7 = i7 | 0;
33679 0 : i6 = i6 | 0;
33680 0 : i5 = i5 | 0;
33681 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0;
33682 0 : i2 = STACKTOP;
33683 0 : i9 = i5 + i6 | 0;
33684 0 : i1 = i9 + -1 | 0;
33685 0 : i10 = HEAP32[i7 + 20 >> 2] | 0;
33686 0 : do {
33687 0 : if ((i10 | 0) > (HEAP32[i7 + 24 >> 2] | 0) ? (i4 = (HEAP32[(HEAP32[i7 >> 2] | 0) + 12 >> 2] | 0) + (i10 + -1 << 2) | 0, i3 = HEAP32[i4 >> 2] | 0, (i3 & 63 | 0) == 4) : 0) {
33688 0 : i11 = i3 >>> 6 & 255;
33689 0 : i10 = i11 + (i3 >>> 23) | 0;
33690 0 : if (!((i11 | 0) <= (i6 | 0) ? (i10 + 1 | 0) >= (i6 | 0) : 0)) {
33691 0 : i8 = 5;
33692 0 : }
33693 0 : if ((i8 | 0) == 5 ? (i11 | 0) < (i6 | 0) | (i11 | 0) > (i9 | 0) : 0) {
33694 0 : break;
33695 0 : }
33696 0 : i5 = (i11 | 0) < (i6 | 0) ? i11 : i6;
33697 0 : HEAP32[i4 >> 2] = ((i10 | 0) > (i1 | 0) ? i10 : i1) - i5 << 23 | i5 << 6 & 16320 | i3 & 8372287;
33698 0 : STACKTOP = i2;
33699 0 : return;
33700 0 : }
33701 0 : } while (0);
33702 0 : _luaK_code(i7, i6 << 6 | (i5 << 23) + -8388608 | 4) | 0;
33703 0 : STACKTOP = i2;
33704 0 : return;
33705 1 : }
33706 1 : function _lua_settable(i1, i5) {
33707 0 : i1 = i1 | 0;
33708 0 : i5 = i5 | 0;
33709 0 : var i2 = 0, i3 = 0, i4 = 0;
33710 0 : i2 = STACKTOP;
33711 0 : i4 = HEAP32[i1 + 16 >> 2] | 0;
33712 0 : do {
33713 0 : if ((i5 | 0) <= 0) {
33714 0 : if (!((i5 | 0) < -1000999)) {
33715 0 : i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
33716 0 : break;
33717 0 : }
33718 0 : if ((i5 | 0) == -1001e3) {
33719 0 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
33720 0 : break;
33721 0 : }
33722 0 : i5 = -1001e3 - i5 | 0;
33723 0 : i4 = HEAP32[i4 >> 2] | 0;
33724 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
33725 0 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
33726 0 : } else {
33727 0 : i3 = 5192;
33728 0 : }
33729 0 : } else {
33730 0 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
33731 0 : i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
33732 0 : }
33733 0 : } while (0);
33734 0 : i5 = i1 + 8 | 0;
33735 0 : i4 = HEAP32[i5 >> 2] | 0;
33736 0 : _luaV_settable(i1, i3, i4 + -32 | 0, i4 + -16 | 0);
33737 0 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + -32;
33738 0 : STACKTOP = i2;
33739 0 : return;
33740 1 : }
33741 1 : function _luaL_findtable(i3, i6, i5, i4) {
33742 0 : i3 = i3 | 0;
33743 0 : i6 = i6 | 0;
33744 0 : i5 = i5 | 0;
33745 0 : i4 = i4 | 0;
33746 0 : var i1 = 0, i2 = 0, i7 = 0;
33747 0 : i2 = STACKTOP;
33748 0 : if ((i6 | 0) != 0) {
33749 0 : _lua_pushvalue(i3, i6);
33750 0 : }
33751 0 : while (1) {
33752 0 : i6 = _strchr(i5, 46) | 0;
33753 0 : if ((i6 | 0) == 0) {
33754 0 : i6 = i5 + (_strlen(i5 | 0) | 0) | 0;
33755 0 : }
33756 0 : i7 = i6 - i5 | 0;
33757 0 : _lua_pushlstring(i3, i5, i7) | 0;
33758 0 : _lua_rawget(i3, -2);
33759 0 : if ((_lua_type(i3, -1) | 0) != 0) {
33760 0 : if ((_lua_type(i3, -1) | 0) != 5) {
33761 0 : break;
33762 0 : }
33763 0 : } else {
33764 0 : _lua_settop(i3, -2);
33765 0 : _lua_createtable(i3, 0, (HEAP8[i6] | 0) == 46 ? 1 : i4);
33766 0 : _lua_pushlstring(i3, i5, i7) | 0;
33767 0 : _lua_pushvalue(i3, -2);
33768 0 : _lua_settable(i3, -4);
33769 0 : }
33770 0 : _lua_remove(i3, -2);
33771 0 : if ((HEAP8[i6] | 0) == 46) {
33772 0 : i5 = i6 + 1 | 0;
33773 0 : } else {
33774 0 : i3 = 0;
33775 0 : i1 = 10;
33776 0 : break;
33777 0 : }
33778 0 : }
33779 0 : if ((i1 | 0) == 10) {
33780 0 : STACKTOP = i2;
33781 0 : return i3 | 0;
33782 0 : }
33783 0 : _lua_settop(i3, -3);
33784 0 : i7 = i5;
33785 0 : STACKTOP = i2;
33786 0 : return i7 | 0;
33787 1 : }
33788 16 : function _luaD_call(i1, i4, i5, i8) {
33789 16 : i1 = i1 | 0;
33790 16 : i4 = i4 | 0;
33791 16 : i5 = i5 | 0;
33792 16 : i8 = i8 | 0;
33793 16 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
33794 16 : i3 = STACKTOP;
33795 16 : STACKTOP = STACKTOP + 16 | 0;
33796 16 : i7 = i3;
33797 16 : i2 = i1 + 38 | 0;
33798 16 : i6 = (HEAP16[i2 >> 1] | 0) + 1 << 16 >> 16;
33799 16 : HEAP16[i2 >> 1] = i6;
33800 16 : if ((i6 & 65535) > 199) {
33801 16 : if (i6 << 16 >> 16 == 200) {
33802 16 : _luaG_runerror(i1, 2240, i7);
33803 16 : }
33804 16 : if ((i6 & 65535) > 224) {
33805 16 : _luaD_throw(i1, 6);
33806 16 : }
33807 16 : }
33808 16 : i6 = (i8 | 0) != 0;
33809 16 : if (!i6) {
33810 16 : i8 = i1 + 36 | 0;
33811 16 : HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + 1 << 16 >> 16;
33812 16 : }
33813 16 : if ((_luaD_precall(i1, i4, i5) | 0) == 0) {
33814 16 : _luaV_execute(i1);
33815 16 : }
33816 16 : if (i6) {
33817 16 : i8 = HEAP16[i2 >> 1] | 0;
33818 16 : i8 = i8 + -1 << 16 >> 16;
33819 16 : HEAP16[i2 >> 1] = i8;
33820 16 : STACKTOP = i3;
33821 16 : return;
33822 16 : }
33823 16 : i8 = i1 + 36 | 0;
33824 16 : HEAP16[i8 >> 1] = (HEAP16[i8 >> 1] | 0) + -1 << 16 >> 16;
33825 16 : i8 = HEAP16[i2 >> 1] | 0;
33826 16 : i8 = i8 + -1 << 16 >> 16;
33827 16 : HEAP16[i2 >> 1] = i8;
33828 16 : STACKTOP = i3;
33829 16 : return;
33830 16 : }
33831 1 : function _pushline(i6, i1) {
33832 0 : i6 = i6 | 0;
33833 0 : i1 = i1 | 0;
33834 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
33835 0 : i2 = STACKTOP;
33836 0 : STACKTOP = STACKTOP + 528 | 0;
33837 0 : i4 = i2;
33838 0 : i3 = i2 + 8 | 0;
33839 0 : i7 = (i1 | 0) != 0;
33840 0 : _lua_getglobal(i6, i7 ? 288 : 296);
33841 0 : i8 = _lua_tolstring(i6, -1, 0) | 0;
33842 0 : if ((i8 | 0) == 0) {
33843 0 : i8 = i7 ? 312 : 320;
33844 0 : }
33845 0 : i7 = HEAP32[_stdout >> 2] | 0;
33846 0 : _fputs(i8 | 0, i7 | 0) | 0;
33847 0 : _fflush(i7 | 0) | 0;
33848 0 : i8 = (_fgets(i3 | 0, 512, HEAP32[_stdin >> 2] | 0) | 0) == 0;
33849 0 : _lua_settop(i6, -2);
33850 0 : if (i8) {
33851 0 : i8 = 0;
33852 0 : STACKTOP = i2;
33853 0 : return i8 | 0;
33854 0 : }
33855 0 : i7 = _strlen(i3 | 0) | 0;
33856 0 : if ((i7 | 0) != 0 ? (i5 = i3 + (i7 + -1) | 0, (HEAP8[i5] | 0) == 10) : 0) {
33857 0 : HEAP8[i5] = 0;
33858 0 : }
33859 0 : if ((i1 | 0) != 0 ? (HEAP8[i3] | 0) == 61 : 0) {
33860 0 : HEAP32[i4 >> 2] = i3 + 1;
33861 0 : _lua_pushfstring(i6, 272, i4) | 0;
33862 0 : i8 = 1;
33863 0 : STACKTOP = i2;
33864 0 : return i8 | 0;
33865 0 : }
33866 0 : _lua_pushstring(i6, i3) | 0;
33867 0 : i8 = 1;
33868 0 : STACKTOP = i2;
33869 0 : return i8 | 0;
33870 1 : }
33871 1 : function _db_getlocal(i1) {
33872 0 : i1 = i1 | 0;
33873 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
33874 0 : i2 = STACKTOP;
33875 0 : STACKTOP = STACKTOP + 112 | 0;
33876 0 : i4 = i2;
33877 0 : if ((_lua_type(i1, 1) | 0) == 8) {
33878 0 : i3 = _lua_tothread(i1, 1) | 0;
33879 0 : i6 = 1;
33880 0 : } else {
33881 0 : i3 = i1;
33882 0 : i6 = 0;
33883 0 : }
33884 0 : i5 = _luaL_checkinteger(i1, i6 | 2) | 0;
33885 0 : i6 = i6 + 1 | 0;
33886 0 : if ((_lua_type(i1, i6) | 0) == 6) {
33887 0 : _lua_pushvalue(i1, i6);
33888 0 : _lua_pushstring(i1, _lua_getlocal(i1, 0, i5) | 0) | 0;
33889 0 : i6 = 1;
33890 0 : STACKTOP = i2;
33891 0 : return i6 | 0;
33892 0 : }
33893 0 : if ((_lua_getstack(i3, _luaL_checkinteger(i1, i6) | 0, i4) | 0) == 0) {
33894 0 : i6 = _luaL_argerror(i1, i6, 11560) | 0;
33895 0 : STACKTOP = i2;
33896 0 : return i6 | 0;
33897 0 : }
33898 0 : i4 = _lua_getlocal(i3, i4, i5) | 0;
33899 0 : if ((i4 | 0) == 0) {
33900 0 : _lua_pushnil(i1);
33901 0 : i6 = 1;
33902 0 : STACKTOP = i2;
33903 0 : return i6 | 0;
33904 0 : } else {
33905 0 : _lua_xmove(i3, i1, 1);
33906 0 : _lua_pushstring(i1, i4) | 0;
33907 0 : _lua_pushvalue(i1, -2);
33908 0 : i6 = 2;
33909 0 : STACKTOP = i2;
33910 0 : return i6 | 0;
33911 0 : }
33912 0 : return 0;
33913 1 : }
33914 1 : function _luaB_print(i1) {
33915 0 : i1 = i1 | 0;
33916 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
33917 0 : i3 = STACKTOP;
33918 0 : STACKTOP = STACKTOP + 16 | 0;
33919 0 : i2 = i3;
33920 0 : i4 = i3 + 4 | 0;
33921 0 : i6 = _lua_gettop(i1) | 0;
33922 0 : _lua_getglobal(i1, 9584);
33923 0 : i5 = HEAP32[_stdout >> 2] | 0;
33924 0 : L1 : do {
33925 0 : if ((i6 | 0) >= 1) {
33926 0 : i7 = 1;
33927 0 : while (1) {
33928 0 : _lua_pushvalue(i1, -1);
33929 0 : _lua_pushvalue(i1, i7);
33930 0 : _lua_callk(i1, 1, 1, 0, 0);
33931 0 : i8 = _lua_tolstring(i1, -1, i4) | 0;
33932 0 : if ((i8 | 0) == 0) {
33933 0 : break;
33934 0 : }
33935 0 : if ((i7 | 0) > 1) {
33936 0 : _fputc(9, i5 | 0) | 0;
33937 0 : }
33938 0 : _fwrite(i8 | 0, 1, HEAP32[i4 >> 2] | 0, i5 | 0) | 0;
33939 0 : _lua_settop(i1, -2);
33940 0 : if ((i7 | 0) < (i6 | 0)) {
33941 0 : i7 = i7 + 1 | 0;
33942 0 : } else {
33943 0 : break L1;
33944 0 : }
33945 0 : }
33946 0 : i8 = _luaL_error(i1, 9816, i2) | 0;
33947 0 : STACKTOP = i3;
33948 0 : return i8 | 0;
33949 0 : }
33950 0 : } while (0);
33951 0 : _fputc(10, i5 | 0) | 0;
33952 0 : _fflush(i5 | 0) | 0;
33953 0 : i8 = 0;
33954 0 : STACKTOP = i3;
33955 0 : return i8 | 0;
33956 1 : }
33957 1 : function _luaB_load(i1) {
33958 0 : i1 = i1 | 0;
33959 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
33960 0 : i2 = STACKTOP;
33961 0 : STACKTOP = STACKTOP + 16 | 0;
33962 0 : i5 = i2;
33963 0 : i6 = _lua_tolstring(i1, 1, i5) | 0;
33964 0 : i4 = _luaL_optlstring(i1, 3, 9872, 0) | 0;
33965 0 : i3 = (_lua_type(i1, 4) | 0) != -1;
33966 0 : if ((i6 | 0) == 0) {
33967 0 : i6 = _luaL_optlstring(i1, 2, 9880, 0) | 0;
33968 0 : _luaL_checktype(i1, 1, 6);
33969 0 : _lua_settop(i1, 5);
33970 0 : i4 = _lua_load(i1, 3, 0, i6, i4) | 0;
33971 0 : } else {
33972 0 : i7 = _luaL_optlstring(i1, 2, i6, 0) | 0;
33973 0 : i4 = _luaL_loadbufferx(i1, i6, HEAP32[i5 >> 2] | 0, i7, i4) | 0;
33974 0 : }
33975 0 : if ((i4 | 0) != 0) {
33976 0 : _lua_pushnil(i1);
33977 0 : _lua_insert(i1, -2);
33978 0 : i7 = 2;
33979 0 : STACKTOP = i2;
33980 0 : return i7 | 0;
33981 0 : }
33982 0 : if (!i3) {
33983 0 : i7 = 1;
33984 0 : STACKTOP = i2;
33985 0 : return i7 | 0;
33986 0 : }
33987 0 : _lua_pushvalue(i1, i3 ? 4 : 0);
33988 0 : if ((_lua_setupvalue(i1, -2, 1) | 0) != 0) {
33989 0 : i7 = 1;
33990 0 : STACKTOP = i2;
33991 0 : return i7 | 0;
33992 0 : }
33993 0 : _lua_settop(i1, -2);
33994 0 : i7 = 1;
33995 0 : STACKTOP = i2;
33996 0 : return i7 | 0;
33997 1 : }
33998 1 : function _db_debug(i2) {
33999 0 : i2 = i2 | 0;
34000 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
34001 0 : i1 = STACKTOP;
34002 0 : STACKTOP = STACKTOP + 256 | 0;
34003 0 : i6 = i1;
34004 0 : i4 = i1 + 4 | 0;
34005 0 : i3 = HEAP32[_stderr >> 2] | 0;
34006 0 : _fwrite(12040, 11, 1, i3 | 0) | 0;
34007 0 : _fflush(i3 | 0) | 0;
34008 0 : i5 = HEAP32[_stdin >> 2] | 0;
34009 0 : if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
34010 0 : STACKTOP = i1;
34011 0 : return 0;
34012 0 : }
34013 0 : while (1) {
34014 0 : if ((_strcmp(i4, 12056) | 0) == 0) {
34015 0 : i2 = 7;
34016 0 : break;
34017 0 : }
34018 0 : if (!((_luaL_loadbufferx(i2, i4, _strlen(i4 | 0) | 0, 12064, 0) | 0) == 0 ? (_lua_pcallk(i2, 0, 0, 0, 0, 0) | 0) == 0 : 0)) {
34019 0 : HEAP32[i6 >> 2] = _lua_tolstring(i2, -1, 0) | 0;
34020 0 : _fprintf(i3 | 0, 12088, i6 | 0) | 0;
34021 0 : _fflush(i3 | 0) | 0;
34022 0 : }
34023 0 : _lua_settop(i2, 0);
34024 0 : _fwrite(12040, 11, 1, i3 | 0) | 0;
34025 0 : _fflush(i3 | 0) | 0;
34026 0 : if ((_fgets(i4 | 0, 250, i5 | 0) | 0) == 0) {
34027 0 : i2 = 7;
34028 0 : break;
34029 0 : }
34030 0 : }
34031 0 : if ((i2 | 0) == 7) {
34032 0 : STACKTOP = i1;
34033 0 : return 0;
34034 0 : }
34035 0 : return 0;
34036 1 : }
34037 13 : function _luaL_prepbuffsize(i2, i7) {
34038 13 : i2 = i2 | 0;
34039 13 : i7 = i7 | 0;
34040 13 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
34041 13 : i3 = STACKTOP;
34042 13 : STACKTOP = STACKTOP + 16 | 0;
34043 13 : i1 = HEAP32[i2 + 12 >> 2] | 0;
34044 13 : i4 = i2 + 4 | 0;
34045 13 : i8 = HEAP32[i4 >> 2] | 0;
34046 13 : i5 = i2 + 8 | 0;
34047 13 : i6 = HEAP32[i5 >> 2] | 0;
34048 13 : if (!((i8 - i6 | 0) >>> 0 < i7 >>> 0)) {
34049 13 : i7 = HEAP32[i2 >> 2] | 0;
34050 13 : i8 = i6;
34051 13 : i8 = i7 + i8 | 0;
34052 13 : STACKTOP = i3;
34053 13 : return i8 | 0;
34054 13 : }
34055 13 : i8 = i8 << 1;
34056 13 : i8 = (i8 - i6 | 0) >>> 0 < i7 >>> 0 ? i6 + i7 | 0 : i8;
34057 13 : if (i8 >>> 0 < i6 >>> 0 | (i8 - i6 | 0) >>> 0 < i7 >>> 0) {
34058 13 : _luaL_error(i1, 1272, i3) | 0;
34059 13 : }
34060 13 : i6 = _lua_newuserdata(i1, i8) | 0;
34061 13 : _memcpy(i6 | 0, HEAP32[i2 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
34062 13 : if ((HEAP32[i2 >> 2] | 0) != (i2 + 16 | 0)) {
34063 13 : _lua_remove(i1, -2);
34064 13 : }
34065 13 : HEAP32[i2 >> 2] = i6;
34066 13 : HEAP32[i4 >> 2] = i8;
34067 13 : i7 = i6;
34068 13 : i8 = HEAP32[i5 >> 2] | 0;
34069 13 : i8 = i7 + i8 | 0;
34070 13 : STACKTOP = i3;
34071 13 : return i8 | 0;
34072 13 : }
34073 1 : function _luaG_runerror(i1, i5, i4) {
34074 0 : i1 = i1 | 0;
34075 0 : i5 = i5 | 0;
34076 0 : i4 = i4 | 0;
34077 0 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
34078 0 : i6 = STACKTOP;
34079 0 : STACKTOP = STACKTOP + 96 | 0;
34080 0 : i2 = i6;
34081 0 : i3 = i6 + 32 | 0;
34082 0 : i6 = i6 + 16 | 0;
34083 0 : HEAP32[i6 >> 2] = i4;
34084 0 : i4 = _luaO_pushvfstring(i1, i5, i6) | 0;
34085 0 : i6 = HEAP32[i1 + 16 >> 2] | 0;
34086 0 : if ((HEAP8[i6 + 18 | 0] & 1) == 0) {
34087 0 : _luaG_errormsg(i1);
34088 0 : }
34089 0 : i5 = HEAP32[(HEAP32[HEAP32[i6 >> 2] >> 2] | 0) + 12 >> 2] | 0;
34090 0 : i7 = HEAP32[i5 + 20 >> 2] | 0;
34091 0 : if ((i7 | 0) == 0) {
34092 0 : i6 = 0;
34093 0 : } else {
34094 0 : i6 = HEAP32[i7 + (((HEAP32[i6 + 28 >> 2] | 0) - (HEAP32[i5 + 12 >> 2] | 0) >> 2) + -1 << 2) >> 2] | 0;
34095 0 : }
34096 0 : i5 = HEAP32[i5 + 36 >> 2] | 0;
34097 0 : if ((i5 | 0) == 0) {
34098 0 : HEAP8[i3] = 63;
34099 0 : HEAP8[i3 + 1 | 0] = 0;
34100 0 : } else {
34101 0 : _luaO_chunkid(i3, i5 + 16 | 0, 60);
34102 0 : }
34103 0 : HEAP32[i2 >> 2] = i3;
34104 0 : HEAP32[i2 + 4 >> 2] = i6;
34105 0 : HEAP32[i2 + 8 >> 2] = i4;
34106 0 : _luaO_pushfstring(i1, 2024, i2) | 0;
34107 0 : _luaG_errormsg(i1);
34108 1 : }
34109 1 : function _db_upvaluejoin(i1) {
34110 0 : i1 = i1 | 0;
34111 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
34112 0 : i3 = STACKTOP;
34113 0 : STACKTOP = STACKTOP + 112 | 0;
34114 0 : i4 = i3;
34115 0 : i2 = _luaL_checkinteger(i1, 2) | 0;
34116 0 : _luaL_checktype(i1, 1, 6);
34117 0 : _lua_pushvalue(i1, 1);
34118 0 : _lua_getinfo(i1, 11728, i4) | 0;
34119 0 : if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
34120 0 : _luaL_argerror(i1, 2, 11736) | 0;
34121 0 : }
34122 0 : i5 = _luaL_checkinteger(i1, 4) | 0;
34123 0 : _luaL_checktype(i1, 3, 6);
34124 0 : _lua_pushvalue(i1, 3);
34125 0 : _lua_getinfo(i1, 11728, i4) | 0;
34126 0 : if (!((i5 | 0) > 0 ? (i5 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
34127 0 : _luaL_argerror(i1, 4, 11736) | 0;
34128 0 : }
34129 0 : if ((_lua_iscfunction(i1, 1) | 0) != 0) {
34130 0 : _luaL_argerror(i1, 1, 11760) | 0;
34131 0 : }
34132 0 : if ((_lua_iscfunction(i1, 3) | 0) == 0) {
34133 0 : _lua_upvaluejoin(i1, 1, i2, 3, i5);
34134 0 : STACKTOP = i3;
34135 0 : return 0;
34136 0 : }
34137 0 : _luaL_argerror(i1, 3, 11760) | 0;
34138 0 : _lua_upvaluejoin(i1, 1, i2, 3, i5);
34139 0 : STACKTOP = i3;
34140 0 : return 0;
34141 1 : }
34142 7 : function _luaK_jump(i1) {
34143 7 : i1 = i1 | 0;
34144 7 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
34145 7 : i3 = STACKTOP;
34146 7 : i2 = i1 + 28 | 0;
34147 7 : i7 = HEAP32[i2 >> 2] | 0;
34148 7 : HEAP32[i2 >> 2] = -1;
34149 7 : i2 = _luaK_code(i1, 2147450903) | 0;
34150 7 : if ((i7 | 0) == -1) {
34151 7 : i9 = i2;
34152 7 : STACKTOP = i3;
34153 7 : return i9 | 0;
34154 7 : }
34155 7 : if ((i2 | 0) == -1) {
34156 7 : i9 = i7;
34157 7 : STACKTOP = i3;
34158 7 : return i9 | 0;
34159 7 : }
34160 7 : i6 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
34161 7 : i8 = i2;
34162 7 : while (1) {
34163 7 : i5 = i6 + (i8 << 2) | 0;
34164 7 : i4 = HEAP32[i5 >> 2] | 0;
34165 7 : i9 = (i4 >>> 14) + -131071 | 0;
34166 7 : if ((i9 | 0) == -1) {
34167 7 : break;
34168 7 : }
34169 7 : i9 = i8 + 1 + i9 | 0;
34170 7 : if ((i9 | 0) == -1) {
34171 7 : break;
34172 7 : } else {
34173 7 : i8 = i9;
34174 7 : }
34175 7 : }
34176 7 : i6 = i7 + ~i8 | 0;
34177 7 : if ((((i6 | 0) > -1 ? i6 : 0 - i6 | 0) | 0) > 131071) {
34178 7 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
34179 7 : }
34180 7 : HEAP32[i5 >> 2] = (i6 << 14) + 2147467264 | i4 & 16383;
34181 7 : i9 = i2;
34182 7 : STACKTOP = i3;
34183 7 : return i9 | 0;
34184 7 : }
34185 1 : function _findfield(i2, i3, i4) {
34186 0 : i2 = i2 | 0;
34187 0 : i3 = i3 | 0;
34188 0 : i4 = i4 | 0;
34189 0 : var i1 = 0;
34190 0 : i1 = STACKTOP;
34191 0 : L1 : do {
34192 0 : if (((i4 | 0) != 0 ? (_lua_type(i2, -1) | 0) == 5 : 0) ? (_lua_pushnil(i2), (_lua_next(i2, -2) | 0) != 0) : 0) {
34193 0 : i4 = i4 + -1 | 0;
34194 0 : while (1) {
34195 0 : if ((_lua_type(i2, -2) | 0) == 4) {
34196 0 : if ((_lua_rawequal(i2, i3, -1) | 0) != 0) {
34197 0 : i3 = 7;
34198 0 : break;
34199 0 : }
34200 0 : if ((_findfield(i2, i3, i4) | 0) != 0) {
34201 0 : i3 = 9;
34202 0 : break;
34203 0 : }
34204 0 : }
34205 0 : _lua_settop(i2, -2);
34206 0 : if ((_lua_next(i2, -2) | 0) == 0) {
34207 0 : i2 = 0;
34208 0 : break L1;
34209 0 : }
34210 0 : }
34211 0 : if ((i3 | 0) == 7) {
34212 0 : _lua_settop(i2, -2);
34213 0 : i2 = 1;
34214 0 : break;
34215 0 : } else if ((i3 | 0) == 9) {
34216 0 : _lua_remove(i2, -2);
34217 0 : _lua_pushlstring(i2, 1776, 1) | 0;
34218 0 : _lua_insert(i2, -2);
34219 0 : _lua_concat(i2, 3);
34220 0 : i2 = 1;
34221 0 : break;
34222 0 : }
34223 0 : } else {
34224 0 : i2 = 0;
34225 0 : }
34226 0 : } while (0);
34227 0 : STACKTOP = i1;
34228 0 : return i2 | 0;
34229 1 : }
34230 1 : function _db_gethook(i1) {
34231 0 : i1 = i1 | 0;
34232 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
34233 0 : i3 = STACKTOP;
34234 0 : STACKTOP = STACKTOP + 16 | 0;
34235 0 : i2 = i3;
34236 0 : if ((_lua_type(i1, 1) | 0) == 8) {
34237 0 : i4 = _lua_tothread(i1, 1) | 0;
34238 0 : } else {
34239 0 : i4 = i1;
34240 0 : }
34241 0 : i5 = _lua_gethookmask(i4) | 0;
34242 0 : i6 = _lua_gethook(i4) | 0;
34243 0 : if ((i6 | 0) != 0 & (i6 | 0) != 9) {
34244 0 : _lua_pushlstring(i1, 12024, 13) | 0;
34245 0 : } else {
34246 0 : _luaL_getsubtable(i1, -1001e3, 11584) | 0;
34247 0 : _lua_pushthread(i4) | 0;
34248 0 : _lua_xmove(i4, i1, 1);
34249 0 : _lua_rawget(i1, -2);
34250 0 : _lua_remove(i1, -2);
34251 0 : }
34252 0 : if ((i5 & 1 | 0) == 0) {
34253 0 : i6 = 0;
34254 0 : } else {
34255 0 : HEAP8[i2] = 99;
34256 0 : i6 = 1;
34257 0 : }
34258 0 : if ((i5 & 2 | 0) != 0) {
34259 0 : HEAP8[i2 + i6 | 0] = 114;
34260 0 : i6 = i6 + 1 | 0;
34261 0 : }
34262 0 : if ((i5 & 4 | 0) != 0) {
34263 0 : HEAP8[i2 + i6 | 0] = 108;
34264 0 : i6 = i6 + 1 | 0;
34265 0 : }
34266 0 : HEAP8[i2 + i6 | 0] = 0;
34267 0 : _lua_pushstring(i1, i2) | 0;
34268 0 : _lua_pushinteger(i1, _lua_gethookcount(i4) | 0);
34269 0 : STACKTOP = i3;
34270 0 : return 3;
34271 1 : }
34272 1 : function _lua_tothread(i3, i5) {
34273 0 : i3 = i3 | 0;
34274 0 : i5 = i5 | 0;
34275 0 : var i1 = 0, i2 = 0, i4 = 0;
34276 0 : i1 = STACKTOP;
34277 0 : i4 = HEAP32[i3 + 16 >> 2] | 0;
34278 0 : do {
34279 0 : if ((i5 | 0) <= 0) {
34280 0 : if (!((i5 | 0) < -1000999)) {
34281 0 : i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
34282 0 : break;
34283 0 : }
34284 0 : if ((i5 | 0) == -1001e3) {
34285 0 : i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
34286 0 : break;
34287 0 : }
34288 0 : i3 = -1001e3 - i5 | 0;
34289 0 : i4 = HEAP32[i4 >> 2] | 0;
34290 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
34291 0 : i2 = i2 + (i3 + -1 << 4) + 16 | 0;
34292 0 : } else {
34293 0 : i2 = 5192;
34294 0 : }
34295 0 : } else {
34296 0 : i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
34297 0 : i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
34298 0 : }
34299 0 : } while (0);
34300 0 : if ((HEAP32[i2 + 8 >> 2] | 0) != 72) {
34301 0 : i5 = 0;
34302 0 : STACKTOP = i1;
34303 0 : return i5 | 0;
34304 0 : }
34305 0 : i5 = HEAP32[i2 >> 2] | 0;
34306 0 : STACKTOP = i1;
34307 0 : return i5 | 0;
34308 1 : }
34309 1 : function _luaD_throw(i1, i2) {
34310 0 : i1 = i1 | 0;
34311 0 : i2 = i2 | 0;
34312 0 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
34313 0 : i3 = i1 + 64 | 0;
34314 0 : i4 = HEAP32[i3 >> 2] | 0;
34315 0 : if ((i4 | 0) != 0) {
34316 0 : HEAP32[i4 + 160 >> 2] = i2;
34317 0 : _longjmp((HEAP32[i3 >> 2] | 0) + 4 | 0, 1);
34318 0 : }
34319 0 : HEAP8[i1 + 6 | 0] = i2;
34320 0 : i4 = i1 + 12 | 0;
34321 0 : i3 = HEAP32[i4 >> 2] | 0;
34322 0 : i5 = HEAP32[i3 + 172 >> 2] | 0;
34323 0 : if ((HEAP32[i5 + 64 >> 2] | 0) != 0) {
34324 0 : i6 = HEAP32[i1 + 8 >> 2] | 0;
34325 0 : i9 = i5 + 8 | 0;
34326 0 : i5 = HEAP32[i9 >> 2] | 0;
34327 0 : HEAP32[i9 >> 2] = i5 + 16;
34328 0 : i9 = i6 + -16 | 0;
34329 0 : i8 = HEAP32[i9 + 4 >> 2] | 0;
34330 0 : i7 = i5;
34331 0 : HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
34332 0 : HEAP32[i7 + 4 >> 2] = i8;
34333 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
34334 0 : _luaD_throw(HEAP32[(HEAP32[i4 >> 2] | 0) + 172 >> 2] | 0, i2);
34335 0 : }
34336 0 : i2 = HEAP32[i3 + 168 >> 2] | 0;
34337 0 : if ((i2 | 0) == 0) {
34338 0 : _abort();
34339 0 : }
34340 0 : FUNCTION_TABLE_ii[i2 & 255](i1) | 0;
34341 0 : _abort();
34342 1 : }
34343 1 : function _lua_len(i1, i5) {
34344 1 : i1 = i1 | 0;
34345 1 : i5 = i5 | 0;
34346 1 : var i2 = 0, i3 = 0, i4 = 0;
34347 1 : i2 = STACKTOP;
34348 1 : i4 = HEAP32[i1 + 16 >> 2] | 0;
34349 1 : do {
34350 1 : if ((i5 | 0) <= 0) {
34351 1 : if (!((i5 | 0) < -1000999)) {
34352 1 : i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
34353 1 : break;
34354 1 : }
34355 1 : if ((i5 | 0) == -1001e3) {
34356 1 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
34357 1 : break;
34358 1 : }
34359 1 : i5 = -1001e3 - i5 | 0;
34360 1 : i4 = HEAP32[i4 >> 2] | 0;
34361 1 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
34362 1 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
34363 1 : } else {
34364 1 : i3 = 5192;
34365 1 : }
34366 1 : } else {
34367 1 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
34368 1 : i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
34369 1 : }
34370 1 : } while (0);
34371 1 : i5 = i1 + 8 | 0;
34372 1 : _luaV_objlen(i1, HEAP32[i5 >> 2] | 0, i3);
34373 1 : HEAP32[i5 >> 2] = (HEAP32[i5 >> 2] | 0) + 16;
34374 1 : STACKTOP = i2;
34375 1 : return;
34376 1 : }
34377 1 : function _read_line(i4, i5, i1) {
34378 0 : i4 = i4 | 0;
34379 0 : i5 = i5 | 0;
34380 0 : i1 = i1 | 0;
34381 0 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0, i8 = 0;
34382 0 : i3 = STACKTOP;
34383 0 : STACKTOP = STACKTOP + 1040 | 0;
34384 0 : i2 = i3;
34385 0 : _luaL_buffinit(i4, i2);
34386 0 : i7 = _luaL_prepbuffsize(i2, 1024) | 0;
34387 0 : L1 : do {
34388 0 : if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) != 0) {
34389 0 : i6 = i2 + 8 | 0;
34390 0 : while (1) {
34391 0 : i8 = _strlen(i7 | 0) | 0;
34392 0 : if ((i8 | 0) != 0 ? (HEAP8[i7 + (i8 + -1) | 0] | 0) == 10 : 0) {
34393 0 : break;
34394 0 : }
34395 0 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + i8;
34396 0 : i7 = _luaL_prepbuffsize(i2, 1024) | 0;
34397 0 : if ((_fgets(i7 | 0, 1024, i5 | 0) | 0) == 0) {
34398 0 : break L1;
34399 0 : }
34400 0 : }
34401 0 : HEAP32[i6 >> 2] = i8 - i1 + (HEAP32[i6 >> 2] | 0);
34402 0 : _luaL_pushresult(i2);
34403 0 : i8 = 1;
34404 0 : STACKTOP = i3;
34405 0 : return i8 | 0;
34406 0 : }
34407 0 : } while (0);
34408 0 : _luaL_pushresult(i2);
34409 0 : i8 = (_lua_rawlen(i4, -1) | 0) != 0 | 0;
34410 0 : STACKTOP = i3;
34411 0 : return i8 | 0;
34412 1 : }
34413 1 : function _luaL_tolstring(i1, i5, i4) {
34414 0 : i1 = i1 | 0;
34415 0 : i5 = i5 | 0;
34416 0 : i4 = i4 | 0;
34417 0 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
34418 0 : i2 = STACKTOP;
34419 0 : STACKTOP = STACKTOP + 16 | 0;
34420 0 : i3 = i2;
34421 0 : do {
34422 0 : if ((_luaL_callmeta(i1, i5, 1384) | 0) == 0) {
34423 0 : i6 = _lua_type(i1, i5) | 0;
34424 0 : if ((i6 | 0) == 0) {
34425 0 : _lua_pushlstring(i1, 1416, 3) | 0;
34426 0 : break;
34427 0 : } else if ((i6 | 0) == 1) {
34428 0 : i6 = (_lua_toboolean(i1, i5) | 0) != 0;
34429 0 : _lua_pushstring(i1, i6 ? 1400 : 1408) | 0;
34430 0 : break;
34431 0 : } else if ((i6 | 0) == 4 | (i6 | 0) == 3) {
34432 0 : _lua_pushvalue(i1, i5);
34433 0 : break;
34434 0 : } else {
34435 0 : i7 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
34436 0 : i6 = _lua_topointer(i1, i5) | 0;
34437 0 : HEAP32[i3 >> 2] = i7;
34438 0 : HEAP32[i3 + 4 >> 2] = i6;
34439 0 : _lua_pushfstring(i1, 1424, i3) | 0;
34440 0 : break;
34441 0 : }
34442 0 : }
34443 0 : } while (0);
34444 0 : i7 = _lua_tolstring(i1, -1, i4) | 0;
34445 0 : STACKTOP = i2;
34446 0 : return i7 | 0;
34447 1 : }
34448 1 : function _save(i7, i1) {
34449 0 : i7 = i7 | 0;
34450 0 : i1 = i1 | 0;
34451 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0;
34452 0 : i2 = STACKTOP;
34453 0 : i4 = HEAP32[i7 + 60 >> 2] | 0;
34454 0 : i3 = i4 + 4 | 0;
34455 0 : i8 = HEAP32[i3 >> 2] | 0;
34456 0 : i6 = i4 + 8 | 0;
34457 0 : i5 = HEAP32[i6 >> 2] | 0;
34458 0 : if (!((i8 + 1 | 0) >>> 0 > i5 >>> 0)) {
34459 0 : i6 = HEAP32[i4 >> 2] | 0;
34460 0 : i7 = i1 & 255;
34461 0 : i5 = i8 + 1 | 0;
34462 0 : HEAP32[i3 >> 2] = i5;
34463 0 : i8 = i6 + i8 | 0;
34464 0 : HEAP8[i8] = i7;
34465 0 : STACKTOP = i2;
34466 0 : return;
34467 0 : }
34468 0 : if (i5 >>> 0 > 2147483645) {
34469 0 : _lexerror(i7, 12368, 0);
34470 0 : }
34471 0 : i8 = i5 << 1;
34472 0 : i7 = HEAP32[i7 + 52 >> 2] | 0;
34473 0 : if ((i8 | 0) == -2) {
34474 0 : _luaM_toobig(i7);
34475 0 : }
34476 0 : i7 = _luaM_realloc_(i7, HEAP32[i4 >> 2] | 0, i5, i8) | 0;
34477 0 : HEAP32[i4 >> 2] = i7;
34478 0 : HEAP32[i6 >> 2] = i8;
34479 0 : i8 = HEAP32[i3 >> 2] | 0;
34480 0 : i6 = i7;
34481 0 : i7 = i1 & 255;
34482 0 : i5 = i8 + 1 | 0;
34483 0 : HEAP32[i3 >> 2] = i5;
34484 0 : i8 = i6 + i8 | 0;
34485 0 : HEAP8[i8] = i7;
34486 0 : STACKTOP = i2;
34487 0 : return;
34488 1 : }
34489 15 : function _luaK_patchtohere(i1, i3) {
34490 15 : i1 = i1 | 0;
34491 15 : i3 = i3 | 0;
34492 15 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
34493 15 : i2 = STACKTOP;
34494 15 : HEAP32[i1 + 24 >> 2] = HEAP32[i1 + 20 >> 2];
34495 15 : i4 = i1 + 28 | 0;
34496 15 : if ((i3 | 0) == -1) {
34497 15 : STACKTOP = i2;
34498 15 : return;
34499 15 : }
34500 15 : i7 = HEAP32[i4 >> 2] | 0;
34501 15 : if ((i7 | 0) == -1) {
34502 15 : HEAP32[i4 >> 2] = i3;
34503 15 : STACKTOP = i2;
34504 15 : return;
34505 15 : }
34506 15 : i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
34507 15 : while (1) {
34508 15 : i6 = i4 + (i7 << 2) | 0;
34509 15 : i5 = HEAP32[i6 >> 2] | 0;
34510 15 : i8 = (i5 >>> 14) + -131071 | 0;
34511 15 : if ((i8 | 0) == -1) {
34512 15 : break;
34513 15 : }
34514 15 : i8 = i7 + 1 + i8 | 0;
34515 15 : if ((i8 | 0) == -1) {
34516 15 : break;
34517 15 : } else {
34518 15 : i7 = i8;
34519 15 : }
34520 15 : }
34521 15 : i3 = ~i7 + i3 | 0;
34522 15 : if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
34523 15 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
34524 15 : }
34525 15 : HEAP32[i6 >> 2] = (i3 << 14) + 2147467264 | i5 & 16383;
34526 15 : STACKTOP = i2;
34527 15 : return;
34528 15 : }
34529 1 : function _tinsert(i1) {
34530 0 : i1 = i1 | 0;
34531 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
34532 0 : i2 = STACKTOP;
34533 0 : STACKTOP = STACKTOP + 16 | 0;
34534 0 : i7 = i2;
34535 0 : _luaL_checktype(i1, 1, 5);
34536 0 : i4 = _luaL_len(i1, 1) | 0;
34537 0 : i3 = i4 + 1 | 0;
34538 0 : i6 = _lua_gettop(i1) | 0;
34539 0 : if ((i6 | 0) == 3) {
34540 0 : i5 = 2;
34541 0 : } else if ((i6 | 0) != 2) {
34542 0 : i7 = _luaL_error(i1, 8320, i7) | 0;
34543 0 : STACKTOP = i2;
34544 0 : return i7 | 0;
34545 0 : }
34546 0 : if ((i5 | 0) == 2) {
34547 0 : i5 = _luaL_checkinteger(i1, 2) | 0;
34548 0 : if ((i5 | 0) < 1 | (i5 | 0) > (i3 | 0)) {
34549 0 : _luaL_argerror(i1, 2, 8256) | 0;
34550 0 : }
34551 0 : if ((i4 | 0) < (i5 | 0)) {
34552 0 : i3 = i5;
34553 0 : } else {
34554 0 : while (1) {
34555 0 : i4 = i3 + -1 | 0;
34556 0 : _lua_rawgeti(i1, 1, i4);
34557 0 : _lua_rawseti(i1, 1, i3);
34558 0 : if ((i4 | 0) > (i5 | 0)) {
34559 0 : i3 = i4;
34560 0 : } else {
34561 0 : i3 = i5;
34562 0 : break;
34563 0 : }
34564 0 : }
34565 0 : }
34566 0 : }
34567 0 : _lua_rawseti(i1, 1, i3);
34568 0 : i7 = 0;
34569 0 : STACKTOP = i2;
34570 0 : return i7 | 0;
34571 1 : }
34572 1 : function _lua_iscfunction(i3, i5) {
34573 0 : i3 = i3 | 0;
34574 0 : i5 = i5 | 0;
34575 0 : var i1 = 0, i2 = 0, i4 = 0;
34576 0 : i1 = STACKTOP;
34577 0 : i4 = HEAP32[i3 + 16 >> 2] | 0;
34578 0 : do {
34579 0 : if ((i5 | 0) <= 0) {
34580 0 : if (!((i5 | 0) < -1000999)) {
34581 0 : i2 = (HEAP32[i3 + 8 >> 2] | 0) + (i5 << 4) | 0;
34582 0 : break;
34583 0 : }
34584 0 : if ((i5 | 0) == -1001e3) {
34585 0 : i2 = (HEAP32[i3 + 12 >> 2] | 0) + 40 | 0;
34586 0 : break;
34587 0 : }
34588 0 : i3 = -1001e3 - i5 | 0;
34589 0 : i4 = HEAP32[i4 >> 2] | 0;
34590 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i2 = HEAP32[i4 >> 2] | 0, (i3 | 0) <= (HEAPU8[i2 + 6 | 0] | 0 | 0)) : 0) {
34591 0 : i2 = i2 + (i3 + -1 << 4) + 16 | 0;
34592 0 : } else {
34593 0 : i2 = 5192;
34594 0 : }
34595 0 : } else {
34596 0 : i2 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
34597 0 : i2 = i2 >>> 0 < (HEAP32[i3 + 8 >> 2] | 0) >>> 0 ? i2 : 5192;
34598 0 : }
34599 0 : } while (0);
34600 0 : i5 = HEAP32[i2 + 8 >> 2] | 0;
34601 0 : STACKTOP = i1;
34602 0 : return ((i5 | 0) == 22 | (i5 | 0) == 102) & 1 | 0;
34603 1 : }
34604 1 : function _lua_gettable(i1, i5) {
34605 0 : i1 = i1 | 0;
34606 0 : i5 = i5 | 0;
34607 0 : var i2 = 0, i3 = 0, i4 = 0;
34608 0 : i2 = STACKTOP;
34609 0 : i4 = HEAP32[i1 + 16 >> 2] | 0;
34610 0 : do {
34611 0 : if ((i5 | 0) <= 0) {
34612 0 : if (!((i5 | 0) < -1000999)) {
34613 0 : i3 = (HEAP32[i1 + 8 >> 2] | 0) + (i5 << 4) | 0;
34614 0 : break;
34615 0 : }
34616 0 : if ((i5 | 0) == -1001e3) {
34617 0 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 40 | 0;
34618 0 : break;
34619 0 : }
34620 0 : i5 = -1001e3 - i5 | 0;
34621 0 : i4 = HEAP32[i4 >> 2] | 0;
34622 0 : if ((HEAP32[i4 + 8 >> 2] | 0) != 22 ? (i3 = HEAP32[i4 >> 2] | 0, (i5 | 0) <= (HEAPU8[i3 + 6 | 0] | 0 | 0)) : 0) {
34623 0 : i3 = i3 + (i5 + -1 << 4) + 16 | 0;
34624 0 : } else {
34625 0 : i3 = 5192;
34626 0 : }
34627 0 : } else {
34628 0 : i3 = (HEAP32[i4 >> 2] | 0) + (i5 << 4) | 0;
34629 0 : i3 = i3 >>> 0 < (HEAP32[i1 + 8 >> 2] | 0) >>> 0 ? i3 : 5192;
34630 0 : }
34631 0 : } while (0);
34632 0 : i5 = (HEAP32[i1 + 8 >> 2] | 0) + -16 | 0;
34633 0 : _luaV_gettable(i1, i3, i5, i5);
34634 0 : STACKTOP = i2;
34635 0 : return;
34636 1 : }
34637 1 : function _luaG_errormsg(i1) {
34638 0 : i1 = i1 | 0;
34639 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0;
34640 0 : i2 = HEAP32[i1 + 68 >> 2] | 0;
34641 0 : if ((i2 | 0) == 0) {
34642 0 : _luaD_throw(i1, 2);
34643 0 : }
34644 0 : i4 = HEAP32[i1 + 28 >> 2] | 0;
34645 0 : i3 = i4 + (i2 + 8) | 0;
34646 0 : if ((HEAP32[i3 >> 2] & 15 | 0) != 6) {
34647 0 : _luaD_throw(i1, 6);
34648 0 : }
34649 0 : i5 = i1 + 8 | 0;
34650 0 : i6 = HEAP32[i5 >> 2] | 0;
34651 0 : i9 = i6 + -16 | 0;
34652 0 : i8 = HEAP32[i9 + 4 >> 2] | 0;
34653 0 : i7 = i6;
34654 0 : HEAP32[i7 >> 2] = HEAP32[i9 >> 2];
34655 0 : HEAP32[i7 + 4 >> 2] = i8;
34656 0 : HEAP32[i6 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
34657 0 : i6 = HEAP32[i5 >> 2] | 0;
34658 0 : i7 = i4 + i2 | 0;
34659 0 : i2 = HEAP32[i7 + 4 >> 2] | 0;
34660 0 : i4 = i6 + -16 | 0;
34661 0 : HEAP32[i4 >> 2] = HEAP32[i7 >> 2];
34662 0 : HEAP32[i4 + 4 >> 2] = i2;
34663 0 : HEAP32[i6 + -8 >> 2] = HEAP32[i3 >> 2];
34664 0 : i4 = HEAP32[i5 >> 2] | 0;
34665 0 : HEAP32[i5 >> 2] = i4 + 16;
34666 0 : _luaD_call(i1, i4 + -16 | 0, 1, 0);
34667 0 : _luaD_throw(i1, 2);
34668 1 : }
34669 1 : function _luaB_costatus(i1) {
34670 0 : i1 = i1 | 0;
34671 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
34672 0 : i4 = STACKTOP;
34673 0 : STACKTOP = STACKTOP + 112 | 0;
34674 0 : i3 = i4;
34675 0 : i2 = _lua_tothread(i1, 1) | 0;
34676 0 : if ((i2 | 0) == 0) {
34677 0 : _luaL_argerror(i1, 1, 10856) | 0;
34678 0 : }
34679 0 : do {
34680 0 : if ((i2 | 0) != (i1 | 0)) {
34681 0 : i5 = _lua_status(i2) | 0;
34682 0 : if ((i5 | 0) == 0) {
34683 0 : if ((_lua_getstack(i2, 0, i3) | 0) > 0) {
34684 0 : _lua_pushlstring(i1, 10896, 6) | 0;
34685 0 : break;
34686 0 : }
34687 0 : if ((_lua_gettop(i2) | 0) == 0) {
34688 0 : _lua_pushlstring(i1, 10904, 4) | 0;
34689 0 : break;
34690 0 : } else {
34691 0 : _lua_pushlstring(i1, 10880, 9) | 0;
34692 0 : break;
34693 0 : }
34694 0 : } else if ((i5 | 0) == 1) {
34695 0 : _lua_pushlstring(i1, 10880, 9) | 0;
34696 0 : break;
34697 0 : } else {
34698 0 : _lua_pushlstring(i1, 10904, 4) | 0;
34699 0 : break;
34700 0 : }
34701 0 : } else {
34702 0 : _lua_pushlstring(i1, 10728, 7) | 0;
34703 0 : }
34704 0 : } while (0);
34705 0 : STACKTOP = i4;
34706 0 : return 1;
34707 1 : }
34708 1 : function _searcher_Lua(i1) {
34709 0 : i1 = i1 | 0;
34710 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
34711 0 : i2 = STACKTOP;
34712 0 : STACKTOP = STACKTOP + 16 | 0;
34713 0 : i3 = i2;
34714 0 : i4 = _luaL_checklstring(i1, 1, 0) | 0;
34715 0 : _lua_getfield(i1, -1001001, 4256);
34716 0 : i5 = _lua_tolstring(i1, -1, 0) | 0;
34717 0 : if ((i5 | 0) == 0) {
34718 0 : HEAP32[i3 >> 2] = 4256;
34719 0 : _luaL_error(i1, 5032, i3) | 0;
34720 0 : }
34721 0 : i4 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
34722 0 : if ((i4 | 0) == 0) {
34723 0 : i5 = 1;
34724 0 : STACKTOP = i2;
34725 0 : return i5 | 0;
34726 0 : }
34727 0 : if ((_luaL_loadfilex(i1, i4, 0) | 0) == 0) {
34728 0 : _lua_pushstring(i1, i4) | 0;
34729 0 : i5 = 2;
34730 0 : STACKTOP = i2;
34731 0 : return i5 | 0;
34732 0 : } else {
34733 0 : i6 = _lua_tolstring(i1, 1, 0) | 0;
34734 0 : i5 = _lua_tolstring(i1, -1, 0) | 0;
34735 0 : HEAP32[i3 >> 2] = i6;
34736 0 : HEAP32[i3 + 4 >> 2] = i4;
34737 0 : HEAP32[i3 + 8 >> 2] = i5;
34738 0 : i5 = _luaL_error(i1, 4888, i3) | 0;
34739 0 : STACKTOP = i2;
34740 0 : return i5 | 0;
34741 0 : }
34742 0 : return 0;
34743 1 : }
34744 1 : function _str_sub(i1) {
34745 0 : i1 = i1 | 0;
34746 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
34747 0 : i3 = STACKTOP;
34748 0 : STACKTOP = STACKTOP + 16 | 0;
34749 0 : i4 = i3;
34750 0 : i2 = _luaL_checklstring(i1, 1, i4) | 0;
34751 0 : i5 = _luaL_checkinteger(i1, 2) | 0;
34752 0 : i6 = HEAP32[i4 >> 2] | 0;
34753 0 : if (!((i5 | 0) > -1)) {
34754 0 : if (i6 >>> 0 < (0 - i5 | 0) >>> 0) {
34755 0 : i5 = 0;
34756 0 : } else {
34757 0 : i5 = i5 + 1 + i6 | 0;
34758 0 : }
34759 0 : }
34760 0 : i6 = _luaL_optinteger(i1, 3, -1) | 0;
34761 0 : i4 = HEAP32[i4 >> 2] | 0;
34762 0 : if (!((i6 | 0) > -1)) {
34763 0 : if (i4 >>> 0 < (0 - i6 | 0) >>> 0) {
34764 0 : i6 = 0;
34765 0 : } else {
34766 0 : i6 = i6 + 1 + i4 | 0;
34767 0 : }
34768 0 : }
34769 0 : i5 = (i5 | 0) == 0 ? 1 : i5;
34770 0 : i4 = i6 >>> 0 > i4 >>> 0 ? i4 : i6;
34771 0 : if (i5 >>> 0 > i4 >>> 0) {
34772 0 : _lua_pushlstring(i1, 7040, 0) | 0;
34773 0 : STACKTOP = i3;
34774 0 : return 1;
34775 0 : } else {
34776 0 : _lua_pushlstring(i1, i2 + (i5 + -1) | 0, 1 - i5 + i4 | 0) | 0;
34777 0 : STACKTOP = i3;
34778 0 : return 1;
34779 0 : }
34780 0 : return 0;
34781 1 : }
34782 1 : function _searcher_C(i1) {
34783 0 : i1 = i1 | 0;
34784 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
34785 0 : i2 = STACKTOP;
34786 0 : STACKTOP = STACKTOP + 16 | 0;
34787 0 : i3 = i2;
34788 0 : i4 = _luaL_checklstring(i1, 1, 0) | 0;
34789 0 : _lua_getfield(i1, -1001001, 4440);
34790 0 : i5 = _lua_tolstring(i1, -1, 0) | 0;
34791 0 : if ((i5 | 0) == 0) {
34792 0 : HEAP32[i3 >> 2] = 4440;
34793 0 : _luaL_error(i1, 5032, i3) | 0;
34794 0 : }
34795 0 : i5 = _searchpath(i1, i4, i5, 4936, 4848) | 0;
34796 0 : if ((i5 | 0) == 0) {
34797 0 : i5 = 1;
34798 0 : STACKTOP = i2;
34799 0 : return i5 | 0;
34800 0 : }
34801 0 : if ((_loadfunc(i1, i5, i4) | 0) == 0) {
34802 0 : _lua_pushstring(i1, i5) | 0;
34803 0 : i5 = 2;
34804 0 : STACKTOP = i2;
34805 0 : return i5 | 0;
34806 0 : } else {
34807 0 : i6 = _lua_tolstring(i1, 1, 0) | 0;
34808 0 : i4 = _lua_tolstring(i1, -1, 0) | 0;
34809 0 : HEAP32[i3 >> 2] = i6;
34810 0 : HEAP32[i3 + 4 >> 2] = i5;
34811 0 : HEAP32[i3 + 8 >> 2] = i4;
34812 0 : i5 = _luaL_error(i1, 4888, i3) | 0;
34813 0 : STACKTOP = i2;
34814 0 : return i5 | 0;
34815 0 : }
34816 0 : return 0;
34817 1 : }
34818 1 : function _io_open(i1) {
34819 0 : i1 = i1 | 0;
34820 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
34821 0 : i5 = STACKTOP;
34822 0 : i2 = _luaL_checklstring(i1, 1, 0) | 0;
34823 0 : i3 = _luaL_optlstring(i1, 2, 3480, 0) | 0;
34824 0 : i4 = _lua_newuserdata(i1, 8) | 0;
34825 0 : i6 = i4 + 4 | 0;
34826 0 : HEAP32[i6 >> 2] = 0;
34827 0 : _luaL_setmetatable(i1, 2832);
34828 0 : HEAP32[i4 >> 2] = 0;
34829 0 : HEAP32[i6 >> 2] = 156;
34830 0 : i6 = HEAP8[i3] | 0;
34831 0 : if (!((!(i6 << 24 >> 24 == 0) ? (i7 = i3 + 1 | 0, (_memchr(3552, i6 << 24 >> 24, 4) | 0) != 0) : 0) ? (i6 = (HEAP8[i7] | 0) == 43 ? i3 + 2 | 0 : i7, (HEAP8[(HEAP8[i6] | 0) == 98 ? i6 + 1 | 0 : i6] | 0) == 0) : 0)) {
34832 0 : _luaL_argerror(i1, 2, 3560) | 0;
34833 0 : }
34834 0 : i7 = _fopen(i2 | 0, i3 | 0) | 0;
34835 0 : HEAP32[i4 >> 2] = i7;
34836 0 : if ((i7 | 0) != 0) {
34837 0 : i7 = 1;
34838 0 : STACKTOP = i5;
34839 0 : return i7 | 0;
34840 0 : }
34841 0 : i7 = _luaL_fileresult(i1, 0, i2) | 0;
34842 0 : STACKTOP = i5;
34843 0 : return i7 | 0;
34844 1 : }
34845 1 : function _unpack(i2) {
34846 0 : i2 = i2 | 0;
34847 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
34848 0 : i1 = STACKTOP;
34849 0 : STACKTOP = STACKTOP + 16 | 0;
34850 0 : i6 = i1;
34851 0 : _luaL_checktype(i2, 1, 5);
34852 0 : i5 = _luaL_optinteger(i2, 2, 1) | 0;
34853 0 : if ((_lua_type(i2, 3) | 0) < 1) {
34854 0 : i3 = _luaL_len(i2, 1) | 0;
34855 0 : } else {
34856 0 : i3 = _luaL_checkinteger(i2, 3) | 0;
34857 0 : }
34858 0 : if ((i5 | 0) > (i3 | 0)) {
34859 0 : i6 = 0;
34860 0 : STACKTOP = i1;
34861 0 : return i6 | 0;
34862 0 : }
34863 0 : i7 = i3 - i5 | 0;
34864 0 : i4 = i7 + 1 | 0;
34865 0 : if ((i7 | 0) >= 0 ? (_lua_checkstack(i2, i4) | 0) != 0 : 0) {
34866 0 : _lua_rawgeti(i2, 1, i5);
34867 0 : if ((i5 | 0) >= (i3 | 0)) {
34868 0 : i7 = i4;
34869 0 : STACKTOP = i1;
34870 0 : return i7 | 0;
34871 0 : }
34872 0 : do {
34873 0 : i5 = i5 + 1 | 0;
34874 0 : _lua_rawgeti(i2, 1, i5);
34875 0 : } while ((i5 | 0) != (i3 | 0));
34876 0 : STACKTOP = i1;
34877 0 : return i4 | 0;
34878 0 : }
34879 0 : i7 = _luaL_error(i2, 8280, i6) | 0;
34880 0 : STACKTOP = i1;
34881 0 : return i7 | 0;
34882 1 : }
34883 1 : function _luaF_getlocalname(i4, i6, i2) {
34884 0 : i4 = i4 | 0;
34885 0 : i6 = i6 | 0;
34886 0 : i2 = i2 | 0;
34887 0 : var i1 = 0, i3 = 0, i5 = 0;
34888 0 : i1 = STACKTOP;
34889 0 : i3 = HEAP32[i4 + 60 >> 2] | 0;
34890 0 : if ((i3 | 0) <= 0) {
34891 0 : i6 = 0;
34892 0 : STACKTOP = i1;
34893 0 : return i6 | 0;
34894 0 : }
34895 0 : i4 = HEAP32[i4 + 24 >> 2] | 0;
34896 0 : i5 = 0;
34897 0 : while (1) {
34898 0 : if ((HEAP32[i4 + (i5 * 12 | 0) + 4 >> 2] | 0) > (i2 | 0)) {
34899 0 : i3 = 0;
34900 0 : i2 = 8;
34901 0 : break;
34902 0 : }
34903 0 : if ((HEAP32[i4 + (i5 * 12 | 0) + 8 >> 2] | 0) > (i2 | 0)) {
34904 0 : i6 = i6 + -1 | 0;
34905 0 : if ((i6 | 0) == 0) {
34906 0 : i2 = 6;
34907 0 : break;
34908 0 : }
34909 0 : }
34910 0 : i5 = i5 + 1 | 0;
34911 0 : if ((i5 | 0) >= (i3 | 0)) {
34912 0 : i3 = 0;
34913 0 : i2 = 8;
34914 0 : break;
34915 0 : }
34916 0 : }
34917 0 : if ((i2 | 0) == 6) {
34918 0 : i6 = (HEAP32[i4 + (i5 * 12 | 0) >> 2] | 0) + 16 | 0;
34919 0 : STACKTOP = i1;
34920 0 : return i6 | 0;
34921 0 : } else if ((i2 | 0) == 8) {
34922 0 : STACKTOP = i1;
34923 0 : return i3 | 0;
34924 0 : }
34925 0 : return 0;
34926 1 : }
34927 7 : function _luaK_concat(i1, i4, i3) {
34928 7 : i1 = i1 | 0;
34929 7 : i4 = i4 | 0;
34930 7 : i3 = i3 | 0;
34931 7 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0;
34932 7 : i2 = STACKTOP;
34933 7 : if ((i3 | 0) == -1) {
34934 7 : STACKTOP = i2;
34935 7 : return;
34936 7 : }
34937 7 : i7 = HEAP32[i4 >> 2] | 0;
34938 7 : if ((i7 | 0) == -1) {
34939 7 : HEAP32[i4 >> 2] = i3;
34940 7 : STACKTOP = i2;
34941 7 : return;
34942 7 : }
34943 7 : i4 = HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0;
34944 7 : while (1) {
34945 7 : i6 = i4 + (i7 << 2) | 0;
34946 7 : i5 = HEAP32[i6 >> 2] | 0;
34947 7 : i8 = (i5 >>> 14) + -131071 | 0;
34948 7 : if ((i8 | 0) == -1) {
34949 7 : break;
34950 7 : }
34951 7 : i8 = i7 + 1 + i8 | 0;
34952 7 : if ((i8 | 0) == -1) {
34953 7 : break;
34954 7 : } else {
34955 7 : i7 = i8;
34956 7 : }
34957 7 : }
34958 7 : i3 = ~i7 + i3 | 0;
34959 7 : if ((((i3 | 0) > -1 ? i3 : 0 - i3 | 0) | 0) > 131071) {
34960 7 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10624);
34961 7 : }
34962 7 : HEAP32[i6 >> 2] = i5 & 16383 | (i3 << 14) + 2147467264;
34963 7 : STACKTOP = i2;
34964 7 : return;
34965 7 : }
34966 5 : function _scalbn(d3, i2) {
34967 5 : d3 = +d3;
34968 5 : i2 = i2 | 0;
34969 5 : var i1 = 0, i4 = 0;
34970 5 : i1 = STACKTOP;
34971 5 : if ((i2 | 0) > 1023) {
34972 5 : d3 = d3 * 8.98846567431158e+307;
34973 5 : i4 = i2 + -1023 | 0;
34974 5 : if ((i4 | 0) > 1023) {
34975 5 : i2 = i2 + -2046 | 0;
34976 5 : i2 = (i2 | 0) > 1023 ? 1023 : i2;
34977 5 : d3 = d3 * 8.98846567431158e+307;
34978 5 : } else {
34979 5 : i2 = i4;
34980 5 : }
34981 5 : } else {
34982 5 : if ((i2 | 0) < -1022) {
34983 5 : d3 = d3 * 2.2250738585072014e-308;
34984 5 : i4 = i2 + 1022 | 0;
34985 5 : if ((i4 | 0) < -1022) {
34986 5 : i2 = i2 + 2044 | 0;
34987 5 : i2 = (i2 | 0) < -1022 ? -1022 : i2;
34988 5 : d3 = d3 * 2.2250738585072014e-308;
34989 5 : } else {
34990 5 : i2 = i4;
34991 5 : }
34992 5 : }
34993 5 : }
34994 5 : i2 = _bitshift64Shl(i2 + 1023 | 0, 0, 52) | 0;
34995 5 : i4 = tempRet0;
34996 5 : HEAP32[tempDoublePtr >> 2] = i2;
34997 5 : HEAP32[tempDoublePtr + 4 >> 2] = i4;
34998 5 : d3 = d3 * +HEAPF64[tempDoublePtr >> 3];
34999 5 : STACKTOP = i1;
35000 5 : return +d3;
35001 5 : }
35002 1 : function _luaK_numberK(i1, d6) {
35003 1 : i1 = i1 | 0;
35004 1 : d6 = +d6;
35005 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0, i8 = 0;
35006 1 : i2 = STACKTOP;
35007 1 : STACKTOP = STACKTOP + 32 | 0;
35008 1 : i4 = i2 + 16 | 0;
35009 1 : i3 = i2;
35010 1 : HEAPF64[i4 >> 3] = d6;
35011 1 : i5 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 52 >> 2] | 0;
35012 1 : HEAPF64[i3 >> 3] = d6;
35013 1 : HEAP32[i3 + 8 >> 2] = 3;
35014 1 : if (d6 != d6 | 0.0 != 0.0 | d6 == 0.0) {
35015 1 : i7 = i5 + 8 | 0;
35016 1 : i8 = HEAP32[i7 >> 2] | 0;
35017 1 : HEAP32[i7 >> 2] = i8 + 16;
35018 1 : i5 = _luaS_newlstr(i5, i4, 8) | 0;
35019 1 : HEAP32[i8 >> 2] = i5;
35020 1 : HEAP32[i8 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
35021 1 : i5 = _addk(i1, (HEAP32[i7 >> 2] | 0) + -16 | 0, i3) | 0;
35022 1 : HEAP32[i7 >> 2] = (HEAP32[i7 >> 2] | 0) + -16;
35023 1 : STACKTOP = i2;
35024 1 : return i5 | 0;
35025 1 : } else {
35026 1 : i8 = _addk(i1, i3, i3) | 0;
35027 1 : STACKTOP = i2;
35028 1 : return i8 | 0;
35029 1 : }
35030 1 : return 0;
35031 1 : }
35032 1 : function _auxresume(i2, i3, i4) {
35033 0 : i2 = i2 | 0;
35034 0 : i3 = i3 | 0;
35035 0 : i4 = i4 | 0;
35036 0 : var i1 = 0;
35037 0 : i1 = STACKTOP;
35038 0 : do {
35039 0 : if ((_lua_checkstack(i3, i4) | 0) != 0) {
35040 0 : if ((_lua_status(i3) | 0) == 0 ? (_lua_gettop(i3) | 0) == 0 : 0) {
35041 0 : _lua_pushlstring(i2, 10792, 28) | 0;
35042 0 : i4 = -1;
35043 0 : break;
35044 0 : }
35045 0 : _lua_xmove(i2, i3, i4);
35046 0 : if (!((_lua_resume(i3, i2, i4) | 0) >>> 0 < 2)) {
35047 0 : _lua_xmove(i3, i2, 1);
35048 0 : i4 = -1;
35049 0 : break;
35050 0 : }
35051 0 : i4 = _lua_gettop(i3) | 0;
35052 0 : if ((_lua_checkstack(i2, i4 + 1 | 0) | 0) == 0) {
35053 0 : _lua_settop(i3, ~i4);
35054 0 : _lua_pushlstring(i2, 10824, 26) | 0;
35055 0 : i4 = -1;
35056 0 : break;
35057 0 : } else {
35058 0 : _lua_xmove(i3, i2, i4);
35059 0 : break;
35060 0 : }
35061 0 : } else {
35062 0 : _lua_pushlstring(i2, 10760, 28) | 0;
35063 0 : i4 = -1;
35064 0 : }
35065 0 : } while (0);
35066 0 : STACKTOP = i1;
35067 0 : return i4 | 0;
35068 1 : }
35069 1 : function _luaX_setinput(i2, i1, i4, i3, i5) {
35070 1 : i2 = i2 | 0;
35071 1 : i1 = i1 | 0;
35072 1 : i4 = i4 | 0;
35073 1 : i3 = i3 | 0;
35074 1 : i5 = i5 | 0;
35075 1 : var i6 = 0, i7 = 0;
35076 1 : i6 = STACKTOP;
35077 1 : HEAP8[i1 + 76 | 0] = 46;
35078 1 : i7 = i1 + 52 | 0;
35079 1 : HEAP32[i7 >> 2] = i2;
35080 1 : HEAP32[i1 >> 2] = i5;
35081 1 : HEAP32[i1 + 32 >> 2] = 286;
35082 1 : HEAP32[i1 + 56 >> 2] = i4;
35083 1 : HEAP32[i1 + 48 >> 2] = 0;
35084 1 : HEAP32[i1 + 4 >> 2] = 1;
35085 1 : HEAP32[i1 + 8 >> 2] = 1;
35086 1 : HEAP32[i1 + 68 >> 2] = i3;
35087 1 : i5 = _luaS_new(i2, 12264) | 0;
35088 1 : HEAP32[i1 + 72 >> 2] = i5;
35089 1 : i5 = i5 + 5 | 0;
35090 1 : HEAP8[i5] = HEAPU8[i5] | 0 | 32;
35091 1 : i5 = i1 + 60 | 0;
35092 1 : i4 = HEAP32[i5 >> 2] | 0;
35093 1 : i4 = _luaM_realloc_(HEAP32[i7 >> 2] | 0, HEAP32[i4 >> 2] | 0, HEAP32[i4 + 8 >> 2] | 0, 32) | 0;
35094 1 : HEAP32[HEAP32[i5 >> 2] >> 2] = i4;
35095 1 : HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] = 32;
35096 1 : STACKTOP = i6;
35097 1 : return;
35098 1 : }
35099 1 : function _luaL_optlstring(i2, i4, i6, i5) {
35100 0 : i2 = i2 | 0;
35101 0 : i4 = i4 | 0;
35102 0 : i6 = i6 | 0;
35103 0 : i5 = i5 | 0;
35104 0 : var i1 = 0, i3 = 0;
35105 0 : i1 = STACKTOP;
35106 0 : STACKTOP = STACKTOP + 16 | 0;
35107 0 : i3 = i1;
35108 0 : if ((_lua_type(i2, i4) | 0) >= 1) {
35109 0 : i5 = _lua_tolstring(i2, i4, i5) | 0;
35110 0 : if ((i5 | 0) != 0) {
35111 0 : i6 = i5;
35112 0 : STACKTOP = i1;
35113 0 : return i6 | 0;
35114 0 : }
35115 0 : i5 = _lua_typename(i2, 4) | 0;
35116 0 : i6 = _lua_typename(i2, _lua_type(i2, i4) | 0) | 0;
35117 0 : HEAP32[i3 >> 2] = i5;
35118 0 : HEAP32[i3 + 4 >> 2] = i6;
35119 0 : _luaL_argerror(i2, i4, _lua_pushfstring(i2, 1744, i3) | 0) | 0;
35120 0 : i6 = 0;
35121 0 : STACKTOP = i1;
35122 0 : return i6 | 0;
35123 0 : }
35124 0 : if ((i5 | 0) == 0) {
35125 0 : STACKTOP = i1;
35126 0 : return i6 | 0;
35127 0 : }
35128 0 : if ((i6 | 0) == 0) {
35129 0 : i2 = 0;
35130 0 : } else {
35131 0 : i2 = _strlen(i6 | 0) | 0;
35132 0 : }
35133 0 : HEAP32[i5 >> 2] = i2;
35134 0 : STACKTOP = i1;
35135 0 : return i6 | 0;
35136 1 : }
35137 1 : function _lua_xmove(i3, i4, i1) {
35138 0 : i3 = i3 | 0;
35139 0 : i4 = i4 | 0;
35140 0 : i1 = i1 | 0;
35141 0 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
35142 0 : i2 = STACKTOP;
35143 0 : if ((i3 | 0) == (i4 | 0)) {
35144 0 : STACKTOP = i2;
35145 0 : return;
35146 0 : }
35147 0 : i3 = i3 + 8 | 0;
35148 0 : i5 = (HEAP32[i3 >> 2] | 0) + (0 - i1 << 4) | 0;
35149 0 : HEAP32[i3 >> 2] = i5;
35150 0 : if ((i1 | 0) <= 0) {
35151 0 : STACKTOP = i2;
35152 0 : return;
35153 0 : }
35154 0 : i4 = i4 + 8 | 0;
35155 0 : i6 = 0;
35156 0 : while (1) {
35157 0 : i7 = HEAP32[i4 >> 2] | 0;
35158 0 : HEAP32[i4 >> 2] = i7 + 16;
35159 0 : i10 = i5 + (i6 << 4) | 0;
35160 0 : i9 = HEAP32[i10 + 4 >> 2] | 0;
35161 0 : i8 = i7;
35162 0 : HEAP32[i8 >> 2] = HEAP32[i10 >> 2];
35163 0 : HEAP32[i8 + 4 >> 2] = i9;
35164 0 : HEAP32[i7 + 8 >> 2] = HEAP32[i5 + (i6 << 4) + 8 >> 2];
35165 0 : i6 = i6 + 1 | 0;
35166 0 : if ((i6 | 0) == (i1 | 0)) {
35167 0 : break;
35168 0 : }
35169 0 : i5 = HEAP32[i3 >> 2] | 0;
35170 0 : }
35171 0 : STACKTOP = i2;
35172 0 : return;
35173 1 : }
35174 572872 : function _luaM_realloc_(i7, i10, i3, i2) {
35175 572872 : i7 = i7 | 0;
35176 572872 : i10 = i10 | 0;
35177 572872 : i3 = i3 | 0;
35178 572872 : i2 = i2 | 0;
35179 572872 : var i1 = 0, i4 = 0, i5 = 0, i6 = 0, i8 = 0, i9 = 0;
35180 572872 : i5 = STACKTOP;
35181 572872 : i6 = HEAP32[i7 + 12 >> 2] | 0;
35182 572872 : i4 = (i10 | 0) != 0;
35183 572872 : i9 = i6 + 4 | 0;
35184 572872 : i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
35185 572872 : if (!((i8 | 0) != 0 | (i2 | 0) == 0)) {
35186 572872 : if ((HEAP8[i6 + 63 | 0] | 0) == 0) {
35187 572872 : _luaD_throw(i7, 4);
35188 572872 : }
35189 572872 : _luaC_fullgc(i7, 1);
35190 572872 : i8 = FUNCTION_TABLE_iiiii[HEAP32[i6 >> 2] & 3](HEAP32[i9 >> 2] | 0, i10, i3, i2) | 0;
35191 572872 : if ((i8 | 0) == 0) {
35192 572872 : _luaD_throw(i7, 4);
35193 572872 : } else {
35194 572872 : i1 = i8;
35195 572872 : }
35196 572872 : } else {
35197 572872 : i1 = i8;
35198 572872 : }
35199 572872 : i6 = i6 + 12 | 0;
35200 572872 : HEAP32[i6 >> 2] = (i4 ? 0 - i3 | 0 : 0) + i2 + (HEAP32[i6 >> 2] | 0);
35201 572872 : STACKTOP = i5;
35202 572872 : return i1 | 0;
35203 572872 : }
35204 286481 : function _realloc(i2, i3) {
35205 286481 : i2 = i2 | 0;
35206 286481 : i3 = i3 | 0;
35207 286481 : var i1 = 0, i4 = 0, i5 = 0;
35208 286481 : i1 = STACKTOP;
35209 286481 : do {
35210 286481 : if ((i2 | 0) != 0) {
35211 286481 : if (i3 >>> 0 > 4294967231) {
35212 286481 : HEAP32[(___errno_location() | 0) >> 2] = 12;
35213 286481 : i4 = 0;
35214 286481 : break;
35215 286481 : }
35216 286481 : if (i3 >>> 0 < 11) {
35217 286481 : i4 = 16;
35218 286481 : } else {
35219 286481 : i4 = i3 + 11 & -8;
35220 286481 : }
35221 286481 : i4 = _try_realloc_chunk(i2 + -8 | 0, i4) | 0;
35222 286481 : if ((i4 | 0) != 0) {
35223 286481 : i4 = i4 + 8 | 0;
35224 286481 : break;
35225 286481 : }
35226 286481 : i4 = _malloc(i3) | 0;
35227 286481 : if ((i4 | 0) == 0) {
35228 286481 : i4 = 0;
35229 286481 : } else {
35230 286481 : i5 = HEAP32[i2 + -4 >> 2] | 0;
35231 286481 : i5 = (i5 & -8) - ((i5 & 3 | 0) == 0 ? 8 : 4) | 0;
35232 286481 : _memcpy(i4 | 0, i2 | 0, (i5 >>> 0 < i3 >>> 0 ? i5 : i3) | 0) | 0;
35233 286481 : _free(i2);
35234 286481 : }
35235 286481 : } else {
35236 286481 : i4 = _malloc(i3) | 0;
35237 286481 : }
35238 286481 : } while (0);
35239 286481 : STACKTOP = i1;
35240 286481 : return i4 | 0;
35241 286481 : }
35242 1 : function _lua_setlocal(i3, i5, i4) {
35243 0 : i3 = i3 | 0;
35244 0 : i5 = i5 | 0;
35245 0 : i4 = i4 | 0;
35246 0 : var i1 = 0, i2 = 0, i6 = 0, i7 = 0, i8 = 0;
35247 0 : i1 = STACKTOP;
35248 0 : STACKTOP = STACKTOP + 16 | 0;
35249 0 : i2 = i1;
35250 0 : HEAP32[i2 >> 2] = 0;
35251 0 : i4 = _findlocal(i3, HEAP32[i5 + 96 >> 2] | 0, i4, i2) | 0;
35252 0 : i3 = i3 + 8 | 0;
35253 0 : if ((i4 | 0) == 0) {
35254 0 : i5 = HEAP32[i3 >> 2] | 0;
35255 0 : i5 = i5 + -16 | 0;
35256 0 : HEAP32[i3 >> 2] = i5;
35257 0 : STACKTOP = i1;
35258 0 : return i4 | 0;
35259 0 : }
35260 0 : i6 = HEAP32[i3 >> 2] | 0;
35261 0 : i5 = HEAP32[i2 >> 2] | 0;
35262 0 : i8 = i6 + -16 | 0;
35263 0 : i7 = HEAP32[i8 + 4 >> 2] | 0;
35264 0 : i2 = i5;
35265 0 : HEAP32[i2 >> 2] = HEAP32[i8 >> 2];
35266 0 : HEAP32[i2 + 4 >> 2] = i7;
35267 0 : HEAP32[i5 + 8 >> 2] = HEAP32[i6 + -8 >> 2];
35268 0 : i5 = HEAP32[i3 >> 2] | 0;
35269 0 : i5 = i5 + -16 | 0;
35270 0 : HEAP32[i3 >> 2] = i5;
35271 0 : STACKTOP = i1;
35272 0 : return i4 | 0;
35273 1 : }
35274 1 : function ___remdi3(i1, i4, i5, i6) {
35275 0 : i1 = i1 | 0;
35276 0 : i4 = i4 | 0;
35277 0 : i5 = i5 | 0;
35278 0 : i6 = i6 | 0;
35279 0 : var i2 = 0, i3 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0;
35280 0 : i3 = STACKTOP;
35281 0 : STACKTOP = STACKTOP + 8 | 0;
35282 0 : i2 = i3 | 0;
35283 0 : i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
35284 0 : i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
35285 0 : i9 = i6 >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
35286 0 : i10 = ((i6 | 0) < 0 ? -1 : 0) >> 31 | ((i6 | 0) < 0 ? -1 : 0) << 1;
35287 0 : i1 = _i64Subtract(i7 ^ i1, i8 ^ i4, i7, i8) | 0;
35288 0 : i4 = tempRet0;
35289 0 : ___udivmoddi4(i1, i4, _i64Subtract(i9 ^ i5, i10 ^ i6, i9, i10) | 0, tempRet0, i2) | 0;
35290 0 : i9 = _i64Subtract(HEAP32[i2 >> 2] ^ i7, HEAP32[i2 + 4 >> 2] ^ i8, i7, i8) | 0;
35291 0 : i8 = tempRet0;
35292 0 : STACKTOP = i3;
35293 0 : return (tempRet0 = i8, i9) | 0;
35294 1 : }
35295 1 : function _luaC_barrierproto_(i3, i4, i2) {
35296 0 : i3 = i3 | 0;
35297 0 : i4 = i4 | 0;
35298 0 : i2 = i2 | 0;
35299 0 : var i1 = 0, i5 = 0;
35300 0 : i1 = STACKTOP;
35301 0 : if ((HEAP32[i4 + 32 >> 2] | 0) != 0) {
35302 0 : i5 = HEAP32[i3 + 12 >> 2] | 0;
35303 0 : i3 = i4 + 5 | 0;
35304 0 : HEAP8[i3] = HEAP8[i3] & 251;
35305 0 : i5 = i5 + 88 | 0;
35306 0 : HEAP32[i4 + 72 >> 2] = HEAP32[i5 >> 2];
35307 0 : HEAP32[i5 >> 2] = i4;
35308 0 : STACKTOP = i1;
35309 0 : return;
35310 0 : }
35311 0 : if ((HEAP8[i2 + 5 | 0] & 3) == 0) {
35312 0 : STACKTOP = i1;
35313 0 : return;
35314 0 : }
35315 0 : i5 = i4 + 5 | 0;
35316 0 : i4 = HEAP8[i5] | 0;
35317 0 : if ((i4 & 4) == 0) {
35318 0 : STACKTOP = i1;
35319 0 : return;
35320 0 : }
35321 0 : i3 = HEAP32[i3 + 12 >> 2] | 0;
35322 0 : if ((HEAPU8[i3 + 61 | 0] | 0) < 2) {
35323 0 : _reallymarkobject(i3, i2);
35324 0 : STACKTOP = i1;
35325 0 : return;
35326 0 : } else {
35327 0 : HEAP8[i5] = HEAP8[i3 + 60 | 0] & 3 | i4 & 184;
35328 0 : STACKTOP = i1;
35329 0 : return;
35330 0 : }
35331 1 : }
35332 1 : function _luaL_openlibs(i1) {
35333 1 : i1 = i1 | 0;
35334 1 : var i2 = 0;
35335 1 : i2 = STACKTOP;
35336 1 : _luaL_requiref(i1, 2592, 144, 1);
35337 1 : _lua_settop(i1, -2);
35338 1 : _luaL_requiref(i1, 2600, 145, 1);
35339 1 : _lua_settop(i1, -2);
35340 1 : _luaL_requiref(i1, 2608, 146, 1);
35341 1 : _lua_settop(i1, -2);
35342 1 : _luaL_requiref(i1, 2624, 147, 1);
35343 1 : _lua_settop(i1, -2);
35344 1 : _luaL_requiref(i1, 2632, 148, 1);
35345 1 : _lua_settop(i1, -2);
35346 1 : _luaL_requiref(i1, 2640, 149, 1);
35347 1 : _lua_settop(i1, -2);
35348 1 : _luaL_requiref(i1, 2648, 150, 1);
35349 1 : _lua_settop(i1, -2);
35350 1 : _luaL_requiref(i1, 2656, 151, 1);
35351 1 : _lua_settop(i1, -2);
35352 1 : _luaL_requiref(i1, 2664, 152, 1);
35353 1 : _lua_settop(i1, -2);
35354 1 : _luaL_requiref(i1, 2672, 153, 1);
35355 1 : _lua_settop(i1, -2);
35356 1 : _luaL_getsubtable(i1, -1001e3, 2576) | 0;
35357 1 : _lua_settop(i1, -2);
35358 1 : STACKTOP = i2;
35359 1 : return;
35360 1 : }
35361 1 : function _luaX_token2str(i4, i3) {
35362 0 : i4 = i4 | 0;
35363 0 : i3 = i3 | 0;
35364 0 : var i1 = 0, i2 = 0, i5 = 0;
35365 0 : i1 = STACKTOP;
35366 0 : STACKTOP = STACKTOP + 16 | 0;
35367 0 : i2 = i1;
35368 0 : if ((i3 | 0) >= 257) {
35369 0 : i5 = HEAP32[12096 + (i3 + -257 << 2) >> 2] | 0;
35370 0 : if ((i3 | 0) >= 286) {
35371 0 : STACKTOP = i1;
35372 0 : return i5 | 0;
35373 0 : }
35374 0 : i4 = HEAP32[i4 + 52 >> 2] | 0;
35375 0 : HEAP32[i2 >> 2] = i5;
35376 0 : i5 = _luaO_pushfstring(i4, 12256, i2) | 0;
35377 0 : STACKTOP = i1;
35378 0 : return i5 | 0;
35379 0 : }
35380 0 : i4 = HEAP32[i4 + 52 >> 2] | 0;
35381 0 : if ((HEAP8[i3 + 10913 | 0] & 4) == 0) {
35382 0 : HEAP32[i2 >> 2] = i3;
35383 0 : i5 = _luaO_pushfstring(i4, 12240, i2) | 0;
35384 0 : STACKTOP = i1;
35385 0 : return i5 | 0;
35386 0 : } else {
35387 0 : HEAP32[i2 >> 2] = i3;
35388 0 : i5 = _luaO_pushfstring(i4, 12232, i2) | 0;
35389 0 : STACKTOP = i1;
35390 0 : return i5 | 0;
35391 0 : }
35392 0 : return 0;
35393 1 : }
35394 1 : function _luaL_buffinitsize(i6, i1, i7) {
35395 0 : i6 = i6 | 0;
35396 0 : i1 = i1 | 0;
35397 0 : i7 = i7 | 0;
35398 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i8 = 0;
35399 0 : i2 = STACKTOP;
35400 0 : HEAP32[i1 + 12 >> 2] = i6;
35401 0 : i3 = i1 + 16 | 0;
35402 0 : HEAP32[i1 >> 2] = i3;
35403 0 : i5 = i1 + 8 | 0;
35404 0 : HEAP32[i5 >> 2] = 0;
35405 0 : i4 = i1 + 4 | 0;
35406 0 : HEAP32[i4 >> 2] = 1024;
35407 0 : if (!(i7 >>> 0 > 1024)) {
35408 0 : i7 = i3;
35409 0 : i8 = 0;
35410 0 : i8 = i7 + i8 | 0;
35411 0 : STACKTOP = i2;
35412 0 : return i8 | 0;
35413 0 : }
35414 0 : i8 = i7 >>> 0 > 2048 ? i7 : 2048;
35415 0 : i7 = _lua_newuserdata(i6, i8) | 0;
35416 0 : _memcpy(i7 | 0, HEAP32[i1 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
35417 0 : if ((HEAP32[i1 >> 2] | 0) != (i3 | 0)) {
35418 0 : _lua_remove(i6, -2);
35419 0 : }
35420 0 : HEAP32[i1 >> 2] = i7;
35421 0 : HEAP32[i4 >> 2] = i8;
35422 0 : i8 = HEAP32[i5 >> 2] | 0;
35423 0 : i8 = i7 + i8 | 0;
35424 0 : STACKTOP = i2;
35425 0 : return i8 | 0;
35426 1 : }
35427 1 : function _luaE_freethread(i1, i3) {
35428 0 : i1 = i1 | 0;
35429 0 : i3 = i3 | 0;
35430 0 : var i2 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
35431 0 : i2 = STACKTOP;
35432 0 : i4 = i3 + 28 | 0;
35433 0 : _luaF_close(i3, HEAP32[i4 >> 2] | 0);
35434 0 : i5 = HEAP32[i4 >> 2] | 0;
35435 0 : if ((i5 | 0) == 0) {
35436 0 : _luaM_realloc_(i1, i3, 112, 0) | 0;
35437 0 : STACKTOP = i2;
35438 0 : return;
35439 0 : }
35440 0 : HEAP32[i3 + 16 >> 2] = i3 + 72;
35441 0 : i7 = i3 + 84 | 0;
35442 0 : i6 = HEAP32[i7 >> 2] | 0;
35443 0 : HEAP32[i7 >> 2] = 0;
35444 0 : if ((i6 | 0) != 0) {
35445 0 : while (1) {
35446 0 : i5 = HEAP32[i6 + 12 >> 2] | 0;
35447 0 : _luaM_realloc_(i3, i6, 40, 0) | 0;
35448 0 : if ((i5 | 0) == 0) {
35449 0 : break;
35450 0 : } else {
35451 0 : i6 = i5;
35452 0 : }
35453 0 : }
35454 0 : i5 = HEAP32[i4 >> 2] | 0;
35455 0 : }
35456 0 : _luaM_realloc_(i3, i5, HEAP32[i3 + 32 >> 2] << 4, 0) | 0;
35457 0 : _luaM_realloc_(i1, i3, 112, 0) | 0;
35458 0 : STACKTOP = i2;
35459 0 : return;
35460 1 : }
35461 1 : function ___toread(i1) {
35462 0 : i1 = i1 | 0;
35463 0 : var i2 = 0, i3 = 0, i4 = 0;
35464 0 : i3 = STACKTOP;
35465 0 : i4 = i1 + 74 | 0;
35466 0 : i2 = HEAP8[i4] | 0;
35467 0 : HEAP8[i4] = i2 + 255 | i2;
35468 0 : i4 = i1 + 20 | 0;
35469 0 : i2 = i1 + 44 | 0;
35470 0 : if ((HEAP32[i4 >> 2] | 0) >>> 0 > (HEAP32[i2 >> 2] | 0) >>> 0) {
35471 0 : FUNCTION_TABLE_iiii[HEAP32[i1 + 36 >> 2] & 3](i1, 0, 0) | 0;
35472 0 : }
35473 0 : HEAP32[i1 + 16 >> 2] = 0;
35474 0 : HEAP32[i1 + 28 >> 2] = 0;
35475 0 : HEAP32[i4 >> 2] = 0;
35476 0 : i4 = HEAP32[i1 >> 2] | 0;
35477 0 : if ((i4 & 20 | 0) == 0) {
35478 0 : i4 = HEAP32[i2 >> 2] | 0;
35479 0 : HEAP32[i1 + 8 >> 2] = i4;
35480 0 : HEAP32[i1 + 4 >> 2] = i4;
35481 0 : i4 = 0;
35482 0 : STACKTOP = i3;
35483 0 : return i4 | 0;
35484 0 : }
35485 0 : if ((i4 & 4 | 0) == 0) {
35486 0 : i4 = -1;
35487 0 : STACKTOP = i3;
35488 0 : return i4 | 0;
35489 0 : }
35490 0 : HEAP32[i1 >> 2] = i4 | 32;
35491 0 : i4 = -1;
35492 0 : STACKTOP = i3;
35493 0 : return i4 | 0;
35494 1 : }
35495 10 : function _lua_callk(i3, i7, i4, i6, i5) {
35496 10 : i3 = i3 | 0;
35497 10 : i7 = i7 | 0;
35498 10 : i4 = i4 | 0;
35499 10 : i6 = i6 | 0;
35500 10 : i5 = i5 | 0;
35501 10 : var i1 = 0, i2 = 0, i8 = 0;
35502 10 : i1 = STACKTOP;
35503 10 : i2 = i3 + 8 | 0;
35504 10 : i7 = (HEAP32[i2 >> 2] | 0) + (~i7 << 4) | 0;
35505 10 : if ((i5 | 0) != 0 ? (HEAP16[i3 + 36 >> 1] | 0) == 0 : 0) {
35506 10 : i8 = i3 + 16 | 0;
35507 10 : HEAP32[(HEAP32[i8 >> 2] | 0) + 28 >> 2] = i5;
35508 10 : HEAP32[(HEAP32[i8 >> 2] | 0) + 24 >> 2] = i6;
35509 10 : _luaD_call(i3, i7, i4, 1);
35510 10 : } else {
35511 10 : _luaD_call(i3, i7, i4, 0);
35512 10 : }
35513 10 : if (!((i4 | 0) == -1)) {
35514 10 : STACKTOP = i1;
35515 10 : return;
35516 10 : }
35517 10 : i3 = (HEAP32[i3 + 16 >> 2] | 0) + 4 | 0;
35518 10 : i2 = HEAP32[i2 >> 2] | 0;
35519 10 : if (!((HEAP32[i3 >> 2] | 0) >>> 0 < i2 >>> 0)) {
35520 10 : STACKTOP = i1;
35521 10 : return;
35522 10 : }
35523 10 : HEAP32[i3 >> 2] = i2;
35524 10 : STACKTOP = i1;
35525 10 : return;
35526 10 : }
35527 6 : function _luaX_newstring(i3, i5, i4) {
35528 6 : i3 = i3 | 0;
35529 6 : i5 = i5 | 0;
35530 6 : i4 = i4 | 0;
35531 6 : var i1 = 0, i2 = 0, i6 = 0;
35532 6 : i1 = STACKTOP;
35533 6 : i2 = HEAP32[i3 + 52 >> 2] | 0;
35534 6 : i5 = _luaS_newlstr(i2, i5, i4) | 0;
35535 6 : i4 = i2 + 8 | 0;
35536 6 : i6 = HEAP32[i4 >> 2] | 0;
35537 6 : HEAP32[i4 >> 2] = i6 + 16;
35538 6 : HEAP32[i6 >> 2] = i5;
35539 6 : HEAP32[i6 + 8 >> 2] = HEAPU8[i5 + 4 | 0] | 0 | 64;
35540 6 : i6 = _luaH_set(i2, HEAP32[(HEAP32[i3 + 48 >> 2] | 0) + 4 >> 2] | 0, (HEAP32[i4 >> 2] | 0) + -16 | 0) | 0;
35541 6 : i3 = i6 + 8 | 0;
35542 6 : if ((HEAP32[i3 >> 2] | 0) == 0 ? (HEAP32[i6 >> 2] = 1, HEAP32[i3 >> 2] = 1, (HEAP32[(HEAP32[i2 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) : 0) {
35543 6 : _luaC_step(i2);
35544 6 : }
35545 6 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -16;
35546 6 : STACKTOP = i1;
35547 6 : return i5 | 0;
35548 6 : }
35549 35 : function _strtod(i3, i2) {
35550 35 : i3 = i3 | 0;
35551 35 : i2 = i2 | 0;
35552 35 : var i1 = 0, i4 = 0, d5 = 0.0, i6 = 0, i7 = 0;
35553 35 : i1 = STACKTOP;
35554 35 : STACKTOP = STACKTOP + 112 | 0;
35555 35 : i4 = i1;
35556 35 : i7 = i4 + 0 | 0;
35557 35 : i6 = i7 + 112 | 0;
35558 35 : do {
35559 35 : HEAP32[i7 >> 2] = 0;
35560 35 : i7 = i7 + 4 | 0;
35561 35 : } while ((i7 | 0) < (i6 | 0));
35562 35 : i6 = i4 + 4 | 0;
35563 35 : HEAP32[i6 >> 2] = i3;
35564 35 : i7 = i4 + 8 | 0;
35565 35 : HEAP32[i7 >> 2] = -1;
35566 35 : HEAP32[i4 + 44 >> 2] = i3;
35567 35 : HEAP32[i4 + 76 >> 2] = -1;
35568 35 : ___shlim(i4, 0);
35569 35 : d5 = +___floatscan(i4, 1, 1);
35570 35 : i4 = (HEAP32[i6 >> 2] | 0) - (HEAP32[i7 >> 2] | 0) + (HEAP32[i4 + 108 >> 2] | 0) | 0;
35571 35 : if ((i2 | 0) == 0) {
35572 35 : STACKTOP = i1;
35573 35 : return +d5;
35574 35 : }
35575 35 : if ((i4 | 0) != 0) {
35576 35 : i3 = i3 + i4 | 0;
35577 35 : }
35578 35 : HEAP32[i2 >> 2] = i3;
35579 35 : STACKTOP = i1;
35580 35 : return +d5;
35581 35 : }
35582 1 : function _f_seek(i1) {
35583 0 : i1 = i1 | 0;
35584 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, d6 = 0.0;
35585 0 : i2 = STACKTOP;
35586 0 : STACKTOP = STACKTOP + 16 | 0;
35587 0 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
35588 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
35589 0 : _luaL_error(i1, 3080, i2) | 0;
35590 0 : }
35591 0 : i3 = HEAP32[i3 >> 2] | 0;
35592 0 : i5 = _luaL_checkoption(i1, 2, 3208, 3184) | 0;
35593 0 : d6 = +_luaL_optnumber(i1, 3, 0.0);
35594 0 : i4 = ~~d6;
35595 0 : if (!(+(i4 | 0) == d6)) {
35596 0 : _luaL_argerror(i1, 3, 3224) | 0;
35597 0 : }
35598 0 : if ((_fseek(i3 | 0, i4 | 0, HEAP32[3168 + (i5 << 2) >> 2] | 0) | 0) == 0) {
35599 0 : _lua_pushnumber(i1, +(_ftell(i3 | 0) | 0));
35600 0 : i5 = 1;
35601 0 : STACKTOP = i2;
35602 0 : return i5 | 0;
35603 0 : } else {
35604 0 : i5 = _luaL_fileresult(i1, 0, 0) | 0;
35605 0 : STACKTOP = i2;
35606 0 : return i5 | 0;
35607 0 : }
35608 0 : return 0;
35609 1 : }
35610 2 : function _setpath(i1, i4, i8, i7, i3) {
35611 2 : i1 = i1 | 0;
35612 2 : i4 = i4 | 0;
35613 2 : i8 = i8 | 0;
35614 2 : i7 = i7 | 0;
35615 2 : i3 = i3 | 0;
35616 2 : var i2 = 0, i5 = 0, i6 = 0;
35617 2 : i2 = STACKTOP;
35618 2 : i8 = _getenv(i8 | 0) | 0;
35619 2 : if ((i8 | 0) == 0) {
35620 2 : i7 = _getenv(i7 | 0) | 0;
35621 2 : if ((i7 | 0) != 0) {
35622 2 : i5 = i7;
35623 2 : i6 = 3;
35624 2 : }
35625 2 : } else {
35626 2 : i5 = i8;
35627 2 : i6 = 3;
35628 2 : }
35629 2 : if ((i6 | 0) == 3 ? (_lua_getfield(i1, -1001e3, 4832), i8 = _lua_toboolean(i1, -1) | 0, _lua_settop(i1, -2), (i8 | 0) == 0) : 0) {
35630 2 : _luaL_gsub(i1, _luaL_gsub(i1, i5, 4808, 4816) | 0, 4824, i3) | 0;
35631 2 : _lua_remove(i1, -2);
35632 2 : _lua_setfield(i1, -2, i4);
35633 2 : STACKTOP = i2;
35634 2 : return;
35635 2 : }
35636 2 : _lua_pushstring(i1, i3) | 0;
35637 2 : _lua_setfield(i1, -2, i4);
35638 2 : STACKTOP = i2;
35639 2 : return;
35640 2 : }
35641 1 : function _luaU_header(i1) {
35642 0 : i1 = i1 | 0;
35643 0 : var i2 = 0, i3 = 0;
35644 0 : i2 = STACKTOP;
35645 0 : HEAP8[i1] = 1635077147;
35646 0 : HEAP8[i1 + 1 | 0] = 6387020;
35647 0 : HEAP8[i1 + 2 | 0] = 24949;
35648 0 : HEAP8[i1 + 3 | 0] = 97;
35649 0 : HEAP8[i1 + 4 | 0] = 82;
35650 0 : HEAP8[i1 + 5 | 0] = 0;
35651 0 : HEAP8[i1 + 6 | 0] = 1;
35652 0 : HEAP8[i1 + 7 | 0] = 4;
35653 0 : HEAP8[i1 + 8 | 0] = 4;
35654 0 : HEAP8[i1 + 9 | 0] = 4;
35655 0 : HEAP8[i1 + 10 | 0] = 8;
35656 0 : i3 = i1 + 12 | 0;
35657 0 : HEAP8[i1 + 11 | 0] = 0;
35658 0 : HEAP8[i3 + 0 | 0] = HEAP8[8816 | 0] | 0;
35659 0 : HEAP8[i3 + 1 | 0] = HEAP8[8817 | 0] | 0;
35660 0 : HEAP8[i3 + 2 | 0] = HEAP8[8818 | 0] | 0;
35661 0 : HEAP8[i3 + 3 | 0] = HEAP8[8819 | 0] | 0;
35662 0 : HEAP8[i3 + 4 | 0] = HEAP8[8820 | 0] | 0;
35663 0 : HEAP8[i3 + 5 | 0] = HEAP8[8821 | 0] | 0;
35664 0 : STACKTOP = i2;
35665 0 : return;
35666 1 : }
35667 1 : function _db_setlocal(i1) {
35668 0 : i1 = i1 | 0;
35669 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
35670 0 : i2 = STACKTOP;
35671 0 : STACKTOP = STACKTOP + 112 | 0;
35672 0 : i3 = i2;
35673 0 : if ((_lua_type(i1, 1) | 0) == 8) {
35674 0 : i5 = _lua_tothread(i1, 1) | 0;
35675 0 : i4 = 1;
35676 0 : } else {
35677 0 : i5 = i1;
35678 0 : i4 = 0;
35679 0 : }
35680 0 : i6 = i4 + 1 | 0;
35681 0 : if ((_lua_getstack(i5, _luaL_checkinteger(i1, i6) | 0, i3) | 0) == 0) {
35682 0 : i6 = _luaL_argerror(i1, i6, 11560) | 0;
35683 0 : STACKTOP = i2;
35684 0 : return i6 | 0;
35685 0 : } else {
35686 0 : i6 = i4 + 3 | 0;
35687 0 : _luaL_checkany(i1, i6);
35688 0 : _lua_settop(i1, i6);
35689 0 : _lua_xmove(i1, i5, 1);
35690 0 : _lua_pushstring(i1, _lua_setlocal(i5, i3, _luaL_checkinteger(i1, i4 | 2) | 0) | 0) | 0;
35691 0 : i6 = 1;
35692 0 : STACKTOP = i2;
35693 0 : return i6 | 0;
35694 0 : }
35695 0 : return 0;
35696 1 : }
35697 1 : function _tremove(i1) {
35698 0 : i1 = i1 | 0;
35699 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
35700 0 : i2 = STACKTOP;
35701 0 : _luaL_checktype(i1, 1, 5);
35702 0 : i3 = _luaL_len(i1, 1) | 0;
35703 0 : i4 = _luaL_optinteger(i1, 2, i3) | 0;
35704 0 : if ((i4 | 0) != (i3 | 0) ? (i4 | 0) < 1 | (i4 | 0) > (i3 + 1 | 0) : 0) {
35705 0 : _luaL_argerror(i1, 1, 8256) | 0;
35706 0 : }
35707 0 : _lua_rawgeti(i1, 1, i4);
35708 0 : if ((i4 | 0) >= (i3 | 0)) {
35709 0 : i5 = i4;
35710 0 : _lua_pushnil(i1);
35711 0 : _lua_rawseti(i1, 1, i5);
35712 0 : STACKTOP = i2;
35713 0 : return 1;
35714 0 : }
35715 0 : while (1) {
35716 0 : i5 = i4 + 1 | 0;
35717 0 : _lua_rawgeti(i1, 1, i5);
35718 0 : _lua_rawseti(i1, 1, i4);
35719 0 : if ((i5 | 0) == (i3 | 0)) {
35720 0 : break;
35721 0 : } else {
35722 0 : i4 = i5;
35723 0 : }
35724 0 : }
35725 0 : _lua_pushnil(i1);
35726 0 : _lua_rawseti(i1, 1, i3);
35727 0 : STACKTOP = i2;
35728 0 : return 1;
35729 1 : }
35730 9 : function _luaL_checkudata(i1, i7, i5) {
35731 9 : i1 = i1 | 0;
35732 9 : i7 = i7 | 0;
35733 9 : i5 = i5 | 0;
35734 9 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
35735 9 : i2 = STACKTOP;
35736 9 : STACKTOP = STACKTOP + 16 | 0;
35737 9 : i4 = i2;
35738 9 : i3 = _lua_touserdata(i1, i7) | 0;
35739 9 : if (((i3 | 0) != 0 ? (_lua_getmetatable(i1, i7) | 0) != 0 : 0) ? (_lua_getfield(i1, -1001e3, i5), i6 = (_lua_rawequal(i1, -1, -2) | 0) == 0, i6 = i6 ? 0 : i3, _lua_settop(i1, -3), (i6 | 0) != 0) : 0) {
35740 9 : i7 = i6;
35741 9 : STACKTOP = i2;
35742 9 : return i7 | 0;
35743 9 : }
35744 9 : i6 = _lua_typename(i1, _lua_type(i1, i7) | 0) | 0;
35745 9 : HEAP32[i4 >> 2] = i5;
35746 9 : HEAP32[i4 + 4 >> 2] = i6;
35747 9 : _luaL_argerror(i1, i7, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
35748 9 : i7 = 0;
35749 9 : STACKTOP = i2;
35750 9 : return i7 | 0;
35751 9 : }
35752 1 : function _luaL_error(i1, i5, i7) {
35753 0 : i1 = i1 | 0;
35754 0 : i5 = i5 | 0;
35755 0 : i7 = i7 | 0;
35756 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
35757 0 : i4 = STACKTOP;
35758 0 : STACKTOP = STACKTOP + 128 | 0;
35759 0 : i3 = i4;
35760 0 : i2 = i4 + 24 | 0;
35761 0 : i4 = i4 + 8 | 0;
35762 0 : HEAP32[i4 >> 2] = i7;
35763 0 : if ((_lua_getstack(i1, 1, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i6 = HEAP32[i2 + 20 >> 2] | 0, (i6 | 0) > 0) : 0) {
35764 0 : HEAP32[i3 >> 2] = i2 + 36;
35765 0 : HEAP32[i3 + 4 >> 2] = i6;
35766 0 : _lua_pushfstring(i1, 1160, i3) | 0;
35767 0 : _lua_pushvfstring(i1, i5, i4) | 0;
35768 0 : _lua_concat(i1, 2);
35769 0 : _lua_error(i1) | 0;
35770 0 : }
35771 0 : _lua_pushlstring(i1, 1168, 0) | 0;
35772 0 : _lua_pushvfstring(i1, i5, i4) | 0;
35773 0 : _lua_concat(i1, 2);
35774 0 : _lua_error(i1) | 0;
35775 0 : return 0;
35776 1 : }
35777 23 : function _luaK_infix(i1, i4, i3) {
35778 23 : i1 = i1 | 0;
35779 23 : i4 = i4 | 0;
35780 23 : i3 = i3 | 0;
35781 23 : var i2 = 0;
35782 23 : i2 = STACKTOP;
35783 23 : L1 : do {
35784 23 : switch (i4 | 0) {
35785 23 : case 6:
35786 23 : {
35787 23 : _luaK_exp2nextreg(i1, i3);
35788 23 : break;
35789 23 : }
35790 23 : case 5:
35791 23 : case 4:
35792 23 : case 3:
35793 23 : case 2:
35794 23 : case 1:
35795 23 : case 0:
35796 23 : {
35797 23 : if (((HEAP32[i3 >> 2] | 0) == 5 ? (HEAP32[i3 + 16 >> 2] | 0) == -1 : 0) ? (HEAP32[i3 + 20 >> 2] | 0) == -1 : 0) {
35798 23 : break L1;
35799 23 : }
35800 23 : _luaK_exp2RK(i1, i3) | 0;
35801 23 : break;
35802 23 : }
35803 23 : case 13:
35804 23 : {
35805 23 : _luaK_goiftrue(i1, i3);
35806 23 : break;
35807 23 : }
35808 23 : case 14:
35809 23 : {
35810 23 : _luaK_goiffalse(i1, i3);
35811 23 : break;
35812 23 : }
35813 23 : default:
35814 23 : {
35815 23 : _luaK_exp2RK(i1, i3) | 0;
35816 23 : }
35817 23 : }
35818 23 : } while (0);
35819 23 : STACKTOP = i2;
35820 23 : return;
35821 23 : }
35822 22 : function _luaD_shrinkstack(i1) {
35823 22 : i1 = i1 | 0;
35824 22 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
35825 22 : i2 = STACKTOP;
35826 22 : i4 = HEAP32[i1 + 8 >> 2] | 0;
35827 22 : i3 = HEAP32[i1 + 16 >> 2] | 0;
35828 22 : if ((i3 | 0) != 0) {
35829 22 : do {
35830 22 : i5 = HEAP32[i3 + 4 >> 2] | 0;
35831 22 : i4 = i4 >>> 0 < i5 >>> 0 ? i5 : i4;
35832 22 : i3 = HEAP32[i3 + 8 >> 2] | 0;
35833 22 : } while ((i3 | 0) != 0);
35834 22 : }
35835 22 : i3 = i4 - (HEAP32[i1 + 28 >> 2] | 0) | 0;
35836 22 : i4 = (i3 >> 4) + 1 | 0;
35837 22 : i4 = ((i4 | 0) / 8 | 0) + 10 + i4 | 0;
35838 22 : i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
35839 22 : if ((i3 | 0) > 15999984) {
35840 22 : STACKTOP = i2;
35841 22 : return;
35842 22 : }
35843 22 : if ((i4 | 0) >= (HEAP32[i1 + 32 >> 2] | 0)) {
35844 22 : STACKTOP = i2;
35845 22 : return;
35846 22 : }
35847 22 : _luaD_reallocstack(i1, i4);
35848 22 : STACKTOP = i2;
35849 22 : return;
35850 22 : }
35851 3 : function _luaF_newproto(i1) {
35852 3 : i1 = i1 | 0;
35853 3 : var i2 = 0;
35854 3 : i2 = STACKTOP;
35855 3 : i1 = _luaC_newobj(i1, 9, 80, 0, 0) | 0;
35856 3 : HEAP32[i1 + 8 >> 2] = 0;
35857 3 : HEAP32[i1 + 44 >> 2] = 0;
35858 3 : HEAP32[i1 + 16 >> 2] = 0;
35859 3 : HEAP32[i1 + 56 >> 2] = 0;
35860 3 : HEAP32[i1 + 12 >> 2] = 0;
35861 3 : HEAP32[i1 + 32 >> 2] = 0;
35862 3 : HEAP32[i1 + 48 >> 2] = 0;
35863 3 : HEAP32[i1 + 20 >> 2] = 0;
35864 3 : HEAP32[i1 + 52 >> 2] = 0;
35865 3 : HEAP32[i1 + 28 >> 2] = 0;
35866 3 : HEAP32[i1 + 40 >> 2] = 0;
35867 3 : HEAP8[i1 + 76 | 0] = 0;
35868 3 : HEAP8[i1 + 77 | 0] = 0;
35869 3 : HEAP8[i1 + 78 | 0] = 0;
35870 3 : HEAP32[i1 + 24 >> 2] = 0;
35871 3 : HEAP32[i1 + 60 >> 2] = 0;
35872 3 : HEAP32[i1 + 64 >> 2] = 0;
35873 3 : HEAP32[i1 + 68 >> 2] = 0;
35874 3 : HEAP32[i1 + 36 >> 2] = 0;
35875 3 : STACKTOP = i2;
35876 3 : return i1 | 0;
35877 3 : }
35878 3 : function _luaF_freeproto(i2, i1) {
35879 3 : i2 = i2 | 0;
35880 3 : i1 = i1 | 0;
35881 3 : var i3 = 0;
35882 3 : i3 = STACKTOP;
35883 3 : _luaM_realloc_(i2, HEAP32[i1 + 12 >> 2] | 0, HEAP32[i1 + 48 >> 2] << 2, 0) | 0;
35884 3 : _luaM_realloc_(i2, HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 56 >> 2] << 2, 0) | 0;
35885 3 : _luaM_realloc_(i2, HEAP32[i1 + 8 >> 2] | 0, HEAP32[i1 + 44 >> 2] << 4, 0) | 0;
35886 3 : _luaM_realloc_(i2, HEAP32[i1 + 20 >> 2] | 0, HEAP32[i1 + 52 >> 2] << 2, 0) | 0;
35887 3 : _luaM_realloc_(i2, HEAP32[i1 + 24 >> 2] | 0, (HEAP32[i1 + 60 >> 2] | 0) * 12 | 0, 0) | 0;
35888 3 : _luaM_realloc_(i2, HEAP32[i1 + 28 >> 2] | 0, HEAP32[i1 + 40 >> 2] << 3, 0) | 0;
35889 3 : _luaM_realloc_(i2, i1, 80, 0) | 0;
35890 3 : STACKTOP = i3;
35891 3 : return;
35892 3 : }
35893 1 : function _luaK_patchclose(i3, i7, i4) {
35894 0 : i3 = i3 | 0;
35895 0 : i7 = i7 | 0;
35896 0 : i4 = i4 | 0;
35897 0 : var i1 = 0, i2 = 0, i5 = 0, i6 = 0, i8 = 0;
35898 0 : i2 = STACKTOP;
35899 0 : if ((i7 | 0) == -1) {
35900 0 : STACKTOP = i2;
35901 0 : return;
35902 0 : }
35903 0 : i3 = HEAP32[(HEAP32[i3 >> 2] | 0) + 12 >> 2] | 0;
35904 0 : i4 = (i4 << 6) + 64 & 16320;
35905 0 : while (1) {
35906 0 : i6 = i3 + (i7 << 2) | 0;
35907 0 : i5 = HEAP32[i6 >> 2] | 0;
35908 0 : i8 = (i5 >>> 14) + -131071 | 0;
35909 0 : if ((i8 | 0) == -1) {
35910 0 : break;
35911 0 : }
35912 0 : i7 = i7 + 1 + i8 | 0;
35913 0 : HEAP32[i6 >> 2] = i5 & -16321 | i4;
35914 0 : if ((i7 | 0) == -1) {
35915 0 : i1 = 6;
35916 0 : break;
35917 0 : }
35918 0 : }
35919 0 : if ((i1 | 0) == 6) {
35920 0 : STACKTOP = i2;
35921 0 : return;
35922 0 : }
35923 0 : HEAP32[i6 >> 2] = i5 & -16321 | i4;
35924 0 : STACKTOP = i2;
35925 0 : return;
35926 1 : }
35927 1 : function _loadfunc(i1, i4, i5) {
35928 0 : i1 = i1 | 0;
35929 0 : i4 = i4 | 0;
35930 0 : i5 = i5 | 0;
35931 0 : var i2 = 0, i3 = 0, i6 = 0;
35932 0 : i2 = STACKTOP;
35933 0 : STACKTOP = STACKTOP + 16 | 0;
35934 0 : i3 = i2;
35935 0 : i6 = _luaL_gsub(i1, i5, 4936, 4944) | 0;
35936 0 : i5 = _strchr(i6, 45) | 0;
35937 0 : do {
35938 0 : if ((i5 | 0) != 0) {
35939 0 : HEAP32[i3 >> 2] = _lua_pushlstring(i1, i6, i5 - i6 | 0) | 0;
35940 0 : i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
35941 0 : if ((i6 | 0) == 2) {
35942 0 : i6 = i5 + 1 | 0;
35943 0 : break;
35944 0 : } else {
35945 0 : STACKTOP = i2;
35946 0 : return i6 | 0;
35947 0 : }
35948 0 : }
35949 0 : } while (0);
35950 0 : HEAP32[i3 >> 2] = i6;
35951 0 : i6 = _ll_loadfunc(i1, i4, _lua_pushfstring(i1, 4952, i3) | 0) | 0;
35952 0 : STACKTOP = i2;
35953 0 : return i6 | 0;
35954 1 : }
35955 2 : function _luaK_setlist(i1, i3, i4, i5) {
35956 2 : i1 = i1 | 0;
35957 2 : i3 = i3 | 0;
35958 2 : i4 = i4 | 0;
35959 2 : i5 = i5 | 0;
35960 2 : var i2 = 0;
35961 2 : i2 = STACKTOP;
35962 2 : i4 = ((i4 + -1 | 0) / 50 | 0) + 1 | 0;
35963 2 : i5 = (i5 | 0) == -1 ? 0 : i5;
35964 2 : if ((i4 | 0) < 512) {
35965 2 : _luaK_code(i1, i3 << 6 | i5 << 23 | i4 << 14 | 36) | 0;
35966 2 : i4 = i3 + 1 | 0;
35967 2 : i4 = i4 & 255;
35968 2 : i5 = i1 + 48 | 0;
35969 2 : HEAP8[i5] = i4;
35970 2 : STACKTOP = i2;
35971 2 : return;
35972 2 : }
35973 2 : if ((i4 | 0) >= 67108864) {
35974 2 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10576);
35975 2 : }
35976 2 : _luaK_code(i1, i3 << 6 | i5 << 23 | 36) | 0;
35977 2 : _luaK_code(i1, i4 << 6 | 39) | 0;
35978 2 : i4 = i3 + 1 | 0;
35979 2 : i4 = i4 & 255;
35980 2 : i5 = i1 + 48 | 0;
35981 2 : HEAP8[i5] = i4;
35982 2 : STACKTOP = i2;
35983 2 : return;
35984 2 : }
35985 1 : function _lua_getstack(i2, i6, i3) {
35986 0 : i2 = i2 | 0;
35987 0 : i6 = i6 | 0;
35988 0 : i3 = i3 | 0;
35989 0 : var i1 = 0, i4 = 0, i5 = 0;
35990 0 : i1 = STACKTOP;
35991 0 : L1 : do {
35992 0 : if ((i6 | 0) >= 0) {
35993 0 : i5 = HEAP32[i2 + 16 >> 2] | 0;
35994 0 : if ((i6 | 0) > 0) {
35995 0 : i4 = i2 + 72 | 0;
35996 0 : do {
35997 0 : if ((i5 | 0) == (i4 | 0)) {
35998 0 : i2 = 0;
35999 0 : break L1;
36000 0 : }
36001 0 : i6 = i6 + -1 | 0;
36002 0 : i5 = HEAP32[i5 + 8 >> 2] | 0;
36003 0 : } while ((i6 | 0) > 0);
36004 0 : if ((i6 | 0) != 0) {
36005 0 : i2 = 0;
36006 0 : break;
36007 0 : }
36008 0 : }
36009 0 : if ((i5 | 0) != (i2 + 72 | 0)) {
36010 0 : HEAP32[i3 + 96 >> 2] = i5;
36011 0 : i2 = 1;
36012 0 : } else {
36013 0 : i2 = 0;
36014 0 : }
36015 0 : } else {
36016 0 : i2 = 0;
36017 0 : }
36018 0 : } while (0);
36019 0 : STACKTOP = i1;
36020 0 : return i2 | 0;
36021 1 : }
36022 2 : function _luaC_checkupvalcolor(i1, i5) {
36023 2 : i1 = i1 | 0;
36024 2 : i5 = i5 | 0;
36025 2 : var i2 = 0, i3 = 0, i4 = 0;
36026 2 : i2 = STACKTOP;
36027 2 : i4 = i5 + 5 | 0;
36028 2 : i3 = HEAPU8[i4] | 0;
36029 2 : if ((i3 & 7 | 0) != 0) {
36030 2 : STACKTOP = i2;
36031 2 : return;
36032 2 : }
36033 2 : if ((HEAP8[i1 + 62 | 0] | 0) != 2 ? (HEAPU8[i1 + 61 | 0] | 0) >= 2 : 0) {
36034 2 : HEAP8[i4] = HEAP8[i1 + 60 | 0] & 3 | i3 & 184;
36035 2 : STACKTOP = i2;
36036 2 : return;
36037 2 : }
36038 2 : HEAP8[i4] = i3 & 187 | 4;
36039 2 : i3 = HEAP32[i5 + 8 >> 2] | 0;
36040 2 : if ((HEAP32[i3 + 8 >> 2] & 64 | 0) == 0) {
36041 2 : STACKTOP = i2;
36042 2 : return;
36043 2 : }
36044 2 : i3 = HEAP32[i3 >> 2] | 0;
36045 2 : if ((HEAP8[i3 + 5 | 0] & 3) == 0) {
36046 2 : STACKTOP = i2;
36047 2 : return;
36048 2 : }
36049 2 : _reallymarkobject(i1, i3);
36050 2 : STACKTOP = i2;
36051 2 : return;
36052 2 : }
36053 1 : function _luaB_collectgarbage(i1) {
36054 0 : i1 = i1 | 0;
36055 0 : var i2 = 0, i3 = 0, i4 = 0;
36056 0 : i2 = STACKTOP;
36057 0 : i4 = HEAP32[10160 + ((_luaL_checkoption(i1, 1, 10040, 9976) | 0) << 2) >> 2] | 0;
36058 0 : i3 = _lua_gc(i1, i4, _luaL_optinteger(i1, 2, 0) | 0) | 0;
36059 0 : if ((i4 | 0) == 3) {
36060 0 : i4 = _lua_gc(i1, 4, 0) | 0;
36061 0 : _lua_pushnumber(i1, +(i3 | 0) + +(i4 | 0) * .0009765625);
36062 0 : _lua_pushinteger(i1, i4);
36063 0 : i4 = 2;
36064 0 : STACKTOP = i2;
36065 0 : return i4 | 0;
36066 0 : } else if ((i4 | 0) == 9 | (i4 | 0) == 5) {
36067 0 : _lua_pushboolean(i1, i3);
36068 0 : i4 = 1;
36069 0 : STACKTOP = i2;
36070 0 : return i4 | 0;
36071 0 : } else {
36072 0 : _lua_pushinteger(i1, i3);
36073 0 : i4 = 1;
36074 0 : STACKTOP = i2;
36075 0 : return i4 | 0;
36076 0 : }
36077 0 : return 0;
36078 1 : }
36079 1 : function _maxn(i1) {
36080 0 : i1 = i1 | 0;
36081 0 : var i2 = 0, d3 = 0.0, d4 = 0.0;
36082 0 : i2 = STACKTOP;
36083 0 : _luaL_checktype(i1, 1, 5);
36084 0 : _lua_pushnil(i1);
36085 0 : L1 : do {
36086 0 : if ((_lua_next(i1, 1) | 0) == 0) {
36087 0 : d3 = 0.0;
36088 0 : } else {
36089 0 : d4 = 0.0;
36090 0 : while (1) {
36091 0 : while (1) {
36092 0 : _lua_settop(i1, -2);
36093 0 : if ((_lua_type(i1, -1) | 0) == 3 ? (d3 = +_lua_tonumberx(i1, -1, 0), d3 > d4) : 0) {
36094 0 : break;
36095 0 : }
36096 0 : if ((_lua_next(i1, 1) | 0) == 0) {
36097 0 : d3 = d4;
36098 0 : break L1;
36099 0 : }
36100 0 : }
36101 0 : if ((_lua_next(i1, 1) | 0) == 0) {
36102 0 : break;
36103 0 : } else {
36104 0 : d4 = d3;
36105 0 : }
36106 0 : }
36107 0 : }
36108 0 : } while (0);
36109 0 : _lua_pushnumber(i1, d3);
36110 0 : STACKTOP = i2;
36111 0 : return 1;
36112 1 : }
36113 1 : function _str_char(i1) {
36114 0 : i1 = i1 | 0;
36115 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0;
36116 0 : i2 = STACKTOP;
36117 0 : STACKTOP = STACKTOP + 1040 | 0;
36118 0 : i4 = i2;
36119 0 : i3 = _lua_gettop(i1) | 0;
36120 0 : i5 = _luaL_buffinitsize(i1, i4, i3) | 0;
36121 0 : if ((i3 | 0) < 1) {
36122 0 : _luaL_pushresultsize(i4, i3);
36123 0 : STACKTOP = i2;
36124 0 : return 1;
36125 0 : } else {
36126 0 : i6 = 1;
36127 0 : }
36128 0 : while (1) {
36129 0 : i7 = _luaL_checkinteger(i1, i6) | 0;
36130 0 : if ((i7 & 255 | 0) != (i7 | 0)) {
36131 0 : _luaL_argerror(i1, i6, 7920) | 0;
36132 0 : }
36133 0 : HEAP8[i5 + (i6 + -1) | 0] = i7;
36134 0 : if ((i6 | 0) == (i3 | 0)) {
36135 0 : break;
36136 0 : } else {
36137 0 : i6 = i6 + 1 | 0;
36138 0 : }
36139 0 : }
36140 0 : _luaL_pushresultsize(i4, i3);
36141 0 : STACKTOP = i2;
36142 0 : return 1;
36143 1 : }
36144 290 : function _memcpy(i3, i2, i1) {
36145 290 : i3 = i3 | 0;
36146 290 : i2 = i2 | 0;
36147 290 : i1 = i1 | 0;
36148 290 : var i4 = 0;
36149 290 : if ((i1 | 0) >= 4096) return _emscripten_memcpy_big(i3 | 0, i2 | 0, i1 | 0) | 0;
36150 290 : i4 = i3 | 0;
36151 290 : if ((i3 & 3) == (i2 & 3)) {
36152 290 : while (i3 & 3) {
36153 290 : if ((i1 | 0) == 0) return i4 | 0;
36154 290 : HEAP8[i3] = HEAP8[i2] | 0;
36155 290 : i3 = i3 + 1 | 0;
36156 290 : i2 = i2 + 1 | 0;
36157 290 : i1 = i1 - 1 | 0;
36158 290 : }
36159 290 : while ((i1 | 0) >= 4) {
36160 290 : HEAP32[i3 >> 2] = HEAP32[i2 >> 2];
36161 290 : i3 = i3 + 4 | 0;
36162 290 : i2 = i2 + 4 | 0;
36163 290 : i1 = i1 - 4 | 0;
36164 290 : }
36165 290 : }
36166 290 : while ((i1 | 0) > 0) {
36167 290 : HEAP8[i3] = HEAP8[i2] | 0;
36168 290 : i3 = i3 + 1 | 0;
36169 290 : i2 = i2 + 1 | 0;
36170 290 : i1 = i1 - 1 | 0;
36171 290 : }
36172 290 : return i4 | 0;
36173 290 : }
36174 6 : function _luaK_exp2val(i1, i5) {
36175 6 : i1 = i1 | 0;
36176 6 : i5 = i5 | 0;
36177 6 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
36178 6 : i2 = STACKTOP;
36179 6 : i3 = i5 + 16 | 0;
36180 6 : i4 = i5 + 20 | 0;
36181 6 : if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
36182 6 : _luaK_dischargevars(i1, i5);
36183 6 : STACKTOP = i2;
36184 6 : return;
36185 6 : }
36186 6 : _luaK_dischargevars(i1, i5);
36187 6 : if ((HEAP32[i5 >> 2] | 0) == 6) {
36188 6 : i6 = HEAP32[i5 + 8 >> 2] | 0;
36189 6 : if ((HEAP32[i3 >> 2] | 0) == (HEAP32[i4 >> 2] | 0)) {
36190 6 : STACKTOP = i2;
36191 6 : return;
36192 6 : }
36193 6 : if ((i6 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
36194 6 : _exp2reg(i1, i5, i6);
36195 6 : STACKTOP = i2;
36196 6 : return;
36197 6 : }
36198 6 : }
36199 6 : _luaK_exp2nextreg(i1, i5);
36200 6 : STACKTOP = i2;
36201 6 : return;
36202 6 : }
36203 1 : function _str_reverse(i5) {
36204 0 : i5 = i5 | 0;
36205 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
36206 0 : i2 = STACKTOP;
36207 0 : STACKTOP = STACKTOP + 1056 | 0;
36208 0 : i4 = i2 + 1040 | 0;
36209 0 : i1 = i2;
36210 0 : i3 = _luaL_checklstring(i5, 1, i4) | 0;
36211 0 : i5 = _luaL_buffinitsize(i5, i1, HEAP32[i4 >> 2] | 0) | 0;
36212 0 : i6 = HEAP32[i4 >> 2] | 0;
36213 0 : if ((i6 | 0) == 0) {
36214 0 : i7 = 0;
36215 0 : _luaL_pushresultsize(i1, i7);
36216 0 : STACKTOP = i2;
36217 0 : return 1;
36218 0 : } else {
36219 0 : i7 = 0;
36220 0 : }
36221 0 : do {
36222 0 : HEAP8[i5 + i7 | 0] = HEAP8[i3 + (i6 + ~i7) | 0] | 0;
36223 0 : i7 = i7 + 1 | 0;
36224 0 : i6 = HEAP32[i4 >> 2] | 0;
36225 0 : } while (i7 >>> 0 < i6 >>> 0);
36226 0 : _luaL_pushresultsize(i1, i6);
36227 0 : STACKTOP = i2;
36228 0 : return 1;
36229 1 : }
36230 1 : function _str_upper(i5) {
36231 0 : i5 = i5 | 0;
36232 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
36233 0 : i1 = STACKTOP;
36234 0 : STACKTOP = STACKTOP + 1056 | 0;
36235 0 : i4 = i1 + 1040 | 0;
36236 0 : i2 = i1;
36237 0 : i3 = _luaL_checklstring(i5, 1, i4) | 0;
36238 0 : i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
36239 0 : if ((HEAP32[i4 >> 2] | 0) == 0) {
36240 0 : i7 = 0;
36241 0 : _luaL_pushresultsize(i2, i7);
36242 0 : STACKTOP = i1;
36243 0 : return 1;
36244 0 : } else {
36245 0 : i6 = 0;
36246 0 : }
36247 0 : do {
36248 0 : HEAP8[i5 + i6 | 0] = _toupper(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
36249 0 : i6 = i6 + 1 | 0;
36250 0 : i7 = HEAP32[i4 >> 2] | 0;
36251 0 : } while (i6 >>> 0 < i7 >>> 0);
36252 0 : _luaL_pushresultsize(i2, i7);
36253 0 : STACKTOP = i1;
36254 0 : return 1;
36255 1 : }
36256 1 : function _str_lower(i5) {
36257 0 : i5 = i5 | 0;
36258 0 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
36259 0 : i1 = STACKTOP;
36260 0 : STACKTOP = STACKTOP + 1056 | 0;
36261 0 : i4 = i1 + 1040 | 0;
36262 0 : i2 = i1;
36263 0 : i3 = _luaL_checklstring(i5, 1, i4) | 0;
36264 0 : i5 = _luaL_buffinitsize(i5, i2, HEAP32[i4 >> 2] | 0) | 0;
36265 0 : if ((HEAP32[i4 >> 2] | 0) == 0) {
36266 0 : i7 = 0;
36267 0 : _luaL_pushresultsize(i2, i7);
36268 0 : STACKTOP = i1;
36269 0 : return 1;
36270 0 : } else {
36271 0 : i6 = 0;
36272 0 : }
36273 0 : do {
36274 0 : HEAP8[i5 + i6 | 0] = _tolower(HEAPU8[i3 + i6 | 0] | 0 | 0) | 0;
36275 0 : i6 = i6 + 1 | 0;
36276 0 : i7 = HEAP32[i4 >> 2] | 0;
36277 0 : } while (i6 >>> 0 < i7 >>> 0);
36278 0 : _luaL_pushresultsize(i2, i7);
36279 0 : STACKTOP = i1;
36280 0 : return 1;
36281 1 : }
36282 1 : function ___divdi3(i1, i2, i3, i4) {
36283 0 : i1 = i1 | 0;
36284 0 : i2 = i2 | 0;
36285 0 : i3 = i3 | 0;
36286 0 : i4 = i4 | 0;
36287 0 : var i5 = 0, i6 = 0, i7 = 0, i8 = 0;
36288 0 : i5 = i2 >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
36289 0 : i6 = ((i2 | 0) < 0 ? -1 : 0) >> 31 | ((i2 | 0) < 0 ? -1 : 0) << 1;
36290 0 : i7 = i4 >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
36291 0 : i8 = ((i4 | 0) < 0 ? -1 : 0) >> 31 | ((i4 | 0) < 0 ? -1 : 0) << 1;
36292 0 : i1 = _i64Subtract(i5 ^ i1, i6 ^ i2, i5, i6) | 0;
36293 0 : i2 = tempRet0;
36294 0 : i5 = i7 ^ i5;
36295 0 : i6 = i8 ^ i6;
36296 0 : i7 = _i64Subtract((___udivmoddi4(i1, i2, _i64Subtract(i7 ^ i3, i8 ^ i4, i7, i8) | 0, tempRet0, 0) | 0) ^ i5, tempRet0 ^ i6, i5, i6) | 0;
36297 0 : return i7 | 0;
36298 1 : }
36299 9 : function _luaK_setoneret(i1, i4) {
36300 9 : i1 = i1 | 0;
36301 9 : i4 = i4 | 0;
36302 9 : var i2 = 0, i3 = 0;
36303 9 : i2 = STACKTOP;
36304 9 : i3 = HEAP32[i4 >> 2] | 0;
36305 9 : if ((i3 | 0) == 13) {
36306 9 : i3 = (HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 + 8 >> 2] << 2) | 0;
36307 9 : HEAP32[i3 >> 2] = HEAP32[i3 >> 2] & 8388607 | 16777216;
36308 9 : HEAP32[i4 >> 2] = 11;
36309 9 : STACKTOP = i2;
36310 9 : return;
36311 9 : } else if ((i3 | 0) == 12) {
36312 9 : HEAP32[i4 >> 2] = 6;
36313 9 : i4 = i4 + 8 | 0;
36314 9 : HEAP32[i4 >> 2] = (HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] | 0) + (HEAP32[i4 >> 2] << 2) >> 2] | 0) >>> 6 & 255;
36315 9 : STACKTOP = i2;
36316 9 : return;
36317 9 : } else {
36318 9 : STACKTOP = i2;
36319 9 : return;
36320 9 : }
36321 9 : }
36322 1 : function _luaV_tostring(i6, i1) {
36323 0 : i6 = i6 | 0;
36324 0 : i1 = i1 | 0;
36325 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
36326 0 : i2 = STACKTOP;
36327 0 : STACKTOP = STACKTOP + 48 | 0;
36328 0 : i3 = i2;
36329 0 : i4 = i2 + 8 | 0;
36330 0 : i5 = i1 + 8 | 0;
36331 0 : if ((HEAP32[i5 >> 2] | 0) != 3) {
36332 0 : i6 = 0;
36333 0 : STACKTOP = i2;
36334 0 : return i6 | 0;
36335 0 : }
36336 0 : HEAPF64[tempDoublePtr >> 3] = +HEAPF64[i1 >> 3];
36337 0 : HEAP32[i3 >> 2] = HEAP32[tempDoublePtr >> 2];
36338 0 : HEAP32[i3 + 4 >> 2] = HEAP32[tempDoublePtr + 4 >> 2];
36339 0 : i6 = _luaS_newlstr(i6, i4, _sprintf(i4 | 0, 8936, i3 | 0) | 0) | 0;
36340 0 : HEAP32[i1 >> 2] = i6;
36341 0 : HEAP32[i5 >> 2] = HEAPU8[i6 + 4 | 0] | 0 | 64;
36342 0 : i6 = 1;
36343 0 : STACKTOP = i2;
36344 0 : return i6 | 0;
36345 1 : }
36346 1 : function _strcmp(i4, i2) {
36347 1 : i4 = i4 | 0;
36348 1 : i2 = i2 | 0;
36349 1 : var i1 = 0, i3 = 0, i5 = 0;
36350 1 : i1 = STACKTOP;
36351 1 : i5 = HEAP8[i4] | 0;
36352 1 : i3 = HEAP8[i2] | 0;
36353 1 : if (i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0) {
36354 1 : i4 = i5;
36355 1 : i5 = i3;
36356 1 : i4 = i4 & 255;
36357 1 : i5 = i5 & 255;
36358 1 : i5 = i4 - i5 | 0;
36359 1 : STACKTOP = i1;
36360 1 : return i5 | 0;
36361 1 : }
36362 1 : do {
36363 1 : i4 = i4 + 1 | 0;
36364 1 : i2 = i2 + 1 | 0;
36365 1 : i5 = HEAP8[i4] | 0;
36366 1 : i3 = HEAP8[i2] | 0;
36367 1 : } while (!(i5 << 24 >> 24 != i3 << 24 >> 24 | i5 << 24 >> 24 == 0 | i3 << 24 >> 24 == 0));
36368 1 : i4 = i5 & 255;
36369 1 : i5 = i3 & 255;
36370 1 : i5 = i4 - i5 | 0;
36371 1 : STACKTOP = i1;
36372 1 : return i5 | 0;
36373 1 : }
36374 16 : function _lua_pushstring(i1, i3) {
36375 16 : i1 = i1 | 0;
36376 16 : i3 = i3 | 0;
36377 16 : var i2 = 0, i4 = 0;
36378 16 : i2 = STACKTOP;
36379 16 : if ((i3 | 0) == 0) {
36380 16 : i3 = i1 + 8 | 0;
36381 16 : i1 = HEAP32[i3 >> 2] | 0;
36382 16 : HEAP32[i1 + 8 >> 2] = 0;
36383 16 : HEAP32[i3 >> 2] = i1 + 16;
36384 16 : i3 = 0;
36385 16 : STACKTOP = i2;
36386 16 : return i3 | 0;
36387 16 : }
36388 16 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
36389 16 : _luaC_step(i1);
36390 16 : }
36391 16 : i3 = _luaS_new(i1, i3) | 0;
36392 16 : i1 = i1 + 8 | 0;
36393 16 : i4 = HEAP32[i1 >> 2] | 0;
36394 16 : HEAP32[i4 >> 2] = i3;
36395 16 : HEAP32[i4 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
36396 16 : HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
36397 16 : i3 = i3 + 16 | 0;
36398 16 : STACKTOP = i2;
36399 16 : return i3 | 0;
36400 16 : }
36401 4 : function _luaK_exp2anyreg(i1, i3) {
36402 4 : i1 = i1 | 0;
36403 4 : i3 = i3 | 0;
36404 4 : var i2 = 0, i4 = 0, i5 = 0;
36405 4 : i2 = STACKTOP;
36406 4 : _luaK_dischargevars(i1, i3);
36407 4 : if ((HEAP32[i3 >> 2] | 0) == 6) {
36408 4 : i5 = i3 + 8 | 0;
36409 4 : i4 = HEAP32[i5 >> 2] | 0;
36410 4 : if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
36411 4 : i5 = i4;
36412 4 : STACKTOP = i2;
36413 4 : return i5 | 0;
36414 4 : }
36415 4 : if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
36416 4 : _exp2reg(i1, i3, i4);
36417 4 : i5 = HEAP32[i5 >> 2] | 0;
36418 4 : STACKTOP = i2;
36419 4 : return i5 | 0;
36420 4 : }
36421 4 : } else {
36422 4 : i5 = i3 + 8 | 0;
36423 4 : }
36424 4 : _luaK_exp2nextreg(i1, i3);
36425 4 : i5 = HEAP32[i5 >> 2] | 0;
36426 4 : STACKTOP = i2;
36427 4 : return i5 | 0;
36428 4 : }
36429 31 : function _check_match(i1, i4, i5, i6) {
36430 31 : i1 = i1 | 0;
36431 31 : i4 = i4 | 0;
36432 31 : i5 = i5 | 0;
36433 31 : i6 = i6 | 0;
36434 31 : var i2 = 0, i3 = 0;
36435 31 : i2 = STACKTOP;
36436 31 : STACKTOP = STACKTOP + 16 | 0;
36437 31 : i3 = i2;
36438 31 : if ((HEAP32[i1 + 16 >> 2] | 0) == (i4 | 0)) {
36439 31 : _luaX_next(i1);
36440 31 : STACKTOP = i2;
36441 31 : return;
36442 31 : }
36443 31 : if ((HEAP32[i1 + 4 >> 2] | 0) == (i6 | 0)) {
36444 31 : _error_expected(i1, i4);
36445 31 : } else {
36446 31 : i2 = HEAP32[i1 + 52 >> 2] | 0;
36447 31 : i4 = _luaX_token2str(i1, i4) | 0;
36448 31 : i5 = _luaX_token2str(i1, i5) | 0;
36449 31 : HEAP32[i3 >> 2] = i4;
36450 31 : HEAP32[i3 + 4 >> 2] = i5;
36451 31 : HEAP32[i3 + 8 >> 2] = i6;
36452 31 : _luaX_syntaxerror(i1, _luaO_pushfstring(i2, 6840, i3) | 0);
36453 31 : }
36454 31 : }
36455 6 : function _fieldsel(i1, i6) {
36456 6 : i1 = i1 | 0;
36457 6 : i6 = i6 | 0;
36458 6 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i7 = 0;
36459 6 : i2 = STACKTOP;
36460 6 : STACKTOP = STACKTOP + 32 | 0;
36461 6 : i3 = i2;
36462 6 : i5 = i1 + 48 | 0;
36463 6 : i4 = HEAP32[i5 >> 2] | 0;
36464 6 : _luaK_exp2anyregup(i4, i6);
36465 6 : _luaX_next(i1);
36466 6 : if ((HEAP32[i1 + 16 >> 2] | 0) == 288) {
36467 6 : i7 = HEAP32[i1 + 24 >> 2] | 0;
36468 6 : _luaX_next(i1);
36469 6 : i5 = _luaK_stringK(HEAP32[i5 >> 2] | 0, i7) | 0;
36470 6 : HEAP32[i3 + 16 >> 2] = -1;
36471 6 : HEAP32[i3 + 20 >> 2] = -1;
36472 6 : HEAP32[i3 >> 2] = 4;
36473 6 : HEAP32[i3 + 8 >> 2] = i5;
36474 6 : _luaK_indexed(i4, i6, i3);
36475 6 : STACKTOP = i2;
36476 6 : return;
36477 6 : } else {
36478 6 : _error_expected(i1, 288);
36479 6 : }
36480 6 : }
36481 12 : function _luaK_exp2anyregup(i1, i3) {
36482 12 : i1 = i1 | 0;
36483 12 : i3 = i3 | 0;
36484 12 : var i2 = 0, i4 = 0;
36485 12 : i2 = STACKTOP;
36486 12 : if ((HEAP32[i3 >> 2] | 0) == 8 ? (HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0) : 0) {
36487 12 : STACKTOP = i2;
36488 12 : return;
36489 12 : }
36490 12 : _luaK_dischargevars(i1, i3);
36491 12 : if ((HEAP32[i3 >> 2] | 0) == 6) {
36492 12 : i4 = HEAP32[i3 + 8 >> 2] | 0;
36493 12 : if ((HEAP32[i3 + 16 >> 2] | 0) == (HEAP32[i3 + 20 >> 2] | 0)) {
36494 12 : STACKTOP = i2;
36495 12 : return;
36496 12 : }
36497 12 : if ((i4 | 0) >= (HEAPU8[i1 + 46 | 0] | 0 | 0)) {
36498 12 : _exp2reg(i1, i3, i4);
36499 12 : STACKTOP = i2;
36500 12 : return;
36501 12 : }
36502 12 : }
36503 12 : _luaK_exp2nextreg(i1, i3);
36504 12 : STACKTOP = i2;
36505 12 : return;
36506 12 : }
36507 64 : function _lua_settop(i3, i5) {
36508 64 : i3 = i3 | 0;
36509 64 : i5 = i5 | 0;
36510 64 : var i1 = 0, i2 = 0, i4 = 0;
36511 64 : i1 = STACKTOP;
36512 64 : if (!((i5 | 0) > -1)) {
36513 64 : i4 = i3 + 8 | 0;
36514 64 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + (i5 + 1 << 4);
36515 64 : STACKTOP = i1;
36516 64 : return;
36517 64 : }
36518 64 : i2 = i3 + 8 | 0;
36519 64 : i4 = HEAP32[i2 >> 2] | 0;
36520 64 : i3 = (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) + (i5 + 1 << 4) | 0;
36521 64 : if (i4 >>> 0 < i3 >>> 0) {
36522 64 : while (1) {
36523 64 : i5 = i4 + 16 | 0;
36524 64 : HEAP32[i4 + 8 >> 2] = 0;
36525 64 : if (i5 >>> 0 < i3 >>> 0) {
36526 64 : i4 = i5;
36527 64 : } else {
36528 64 : break;
36529 64 : }
36530 64 : }
36531 64 : HEAP32[i2 >> 2] = i5;
36532 64 : }
36533 64 : HEAP32[i2 >> 2] = i3;
36534 64 : STACKTOP = i1;
36535 64 : return;
36536 64 : }
36537 1 : function _luaL_fileresult(i1, i6, i5) {
36538 0 : i1 = i1 | 0;
36539 0 : i6 = i6 | 0;
36540 0 : i5 = i5 | 0;
36541 0 : var i2 = 0, i3 = 0, i4 = 0;
36542 0 : i2 = STACKTOP;
36543 0 : STACKTOP = STACKTOP + 16 | 0;
36544 0 : i4 = i2;
36545 0 : i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
36546 0 : if ((i6 | 0) != 0) {
36547 0 : _lua_pushboolean(i1, 1);
36548 0 : i6 = 1;
36549 0 : STACKTOP = i2;
36550 0 : return i6 | 0;
36551 0 : }
36552 0 : _lua_pushnil(i1);
36553 0 : i6 = _strerror(i3 | 0) | 0;
36554 0 : if ((i5 | 0) == 0) {
36555 0 : _lua_pushstring(i1, i6) | 0;
36556 0 : } else {
36557 0 : HEAP32[i4 >> 2] = i5;
36558 0 : HEAP32[i4 + 4 >> 2] = i6;
36559 0 : _lua_pushfstring(i1, 1176, i4) | 0;
36560 0 : }
36561 0 : _lua_pushinteger(i1, i3);
36562 0 : i6 = 3;
36563 0 : STACKTOP = i2;
36564 0 : return i6 | 0;
36565 1 : }
36566 1 : function _luaL_pushmodule(i1, i4, i5) {
36567 0 : i1 = i1 | 0;
36568 0 : i4 = i4 | 0;
36569 0 : i5 = i5 | 0;
36570 0 : var i2 = 0, i3 = 0;
36571 0 : i2 = STACKTOP;
36572 0 : STACKTOP = STACKTOP + 16 | 0;
36573 0 : i3 = i2;
36574 0 : _luaL_findtable(i1, -1001e3, 1432, 1) | 0;
36575 0 : _lua_getfield(i1, -1, i4);
36576 0 : if ((_lua_type(i1, -1) | 0) == 5) {
36577 0 : _lua_remove(i1, -2);
36578 0 : STACKTOP = i2;
36579 0 : return;
36580 0 : }
36581 0 : _lua_settop(i1, -2);
36582 0 : _lua_rawgeti(i1, -1001e3, 2);
36583 0 : if ((_luaL_findtable(i1, 0, i4, i5) | 0) != 0) {
36584 0 : HEAP32[i3 >> 2] = i4;
36585 0 : _luaL_error(i1, 1440, i3) | 0;
36586 0 : }
36587 0 : _lua_pushvalue(i1, -1);
36588 0 : _lua_setfield(i1, -3, i4);
36589 0 : _lua_remove(i1, -2);
36590 0 : STACKTOP = i2;
36591 0 : return;
36592 1 : }
36593 1 : function _b_replace(i1) {
36594 0 : i1 = i1 | 0;
36595 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
36596 0 : i6 = STACKTOP;
36597 0 : STACKTOP = STACKTOP + 16 | 0;
36598 0 : i3 = _luaL_checkunsigned(i1, 1) | 0;
36599 0 : i5 = _luaL_checkunsigned(i1, 2) | 0;
36600 0 : i4 = _luaL_checkinteger(i1, 3) | 0;
36601 0 : i2 = _luaL_optinteger(i1, 4, 1) | 0;
36602 0 : if (!((i4 | 0) > -1)) {
36603 0 : _luaL_argerror(i1, 3, 10440) | 0;
36604 0 : }
36605 0 : if ((i2 | 0) <= 0) {
36606 0 : _luaL_argerror(i1, 4, 10472) | 0;
36607 0 : }
36608 0 : if ((i2 + i4 | 0) > 32) {
36609 0 : _luaL_error(i1, 10496, i6) | 0;
36610 0 : }
36611 0 : i2 = ~(-2 << i2 + -1);
36612 0 : _lua_pushunsigned(i1, i3 & ~(i2 << i4) | (i5 & i2) << i4);
36613 0 : STACKTOP = i6;
36614 0 : return 1;
36615 1 : }
36616 4 : function _luaT_gettmbyobj(i1, i5, i3) {
36617 4 : i1 = i1 | 0;
36618 4 : i5 = i5 | 0;
36619 4 : i3 = i3 | 0;
36620 4 : var i2 = 0, i4 = 0;
36621 4 : i2 = STACKTOP;
36622 4 : i4 = HEAP32[i5 + 8 >> 2] & 15;
36623 4 : if ((i4 | 0) == 5) {
36624 4 : i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
36625 4 : } else if ((i4 | 0) == 7) {
36626 4 : i4 = HEAP32[(HEAP32[i5 >> 2] | 0) + 8 >> 2] | 0;
36627 4 : } else {
36628 4 : i4 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i4 << 2) + 252 >> 2] | 0;
36629 4 : }
36630 4 : if ((i4 | 0) == 0) {
36631 4 : i5 = 5192;
36632 4 : STACKTOP = i2;
36633 4 : return i5 | 0;
36634 4 : }
36635 4 : i5 = _luaH_getstr(i4, HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + (i3 << 2) + 184 >> 2] | 0) | 0;
36636 4 : STACKTOP = i2;
36637 4 : return i5 | 0;
36638 4 : }
36639 337 : function _luaS_eqstr(i2, i3) {
36640 337 : i2 = i2 | 0;
36641 337 : i3 = i3 | 0;
36642 337 : var i1 = 0, i4 = 0;
36643 337 : i1 = STACKTOP;
36644 337 : i4 = HEAP8[i2 + 4 | 0] | 0;
36645 337 : do {
36646 337 : if (i4 << 24 >> 24 == (HEAP8[i3 + 4 | 0] | 0)) {
36647 337 : if (i4 << 24 >> 24 == 4) {
36648 337 : i2 = (i2 | 0) == (i3 | 0);
36649 337 : break;
36650 337 : }
36651 337 : i4 = HEAP32[i2 + 12 >> 2] | 0;
36652 337 : if ((i2 | 0) != (i3 | 0)) {
36653 337 : if ((i4 | 0) == (HEAP32[i3 + 12 >> 2] | 0)) {
36654 337 : i2 = (_memcmp(i2 + 16 | 0, i3 + 16 | 0, i4) | 0) == 0;
36655 337 : } else {
36656 337 : i2 = 0;
36657 337 : }
36658 337 : } else {
36659 337 : i2 = 1;
36660 337 : }
36661 337 : } else {
36662 337 : i2 = 0;
36663 337 : }
36664 337 : } while (0);
36665 337 : STACKTOP = i1;
36666 337 : return i2 & 1 | 0;
36667 337 : }
36668 1 : function _lua_concat(i1, i3) {
36669 0 : i1 = i1 | 0;
36670 0 : i3 = i3 | 0;
36671 0 : var i2 = 0, i4 = 0;
36672 0 : i2 = STACKTOP;
36673 0 : if ((i3 | 0) > 1) {
36674 0 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
36675 0 : _luaC_step(i1);
36676 0 : }
36677 0 : _luaV_concat(i1, i3);
36678 0 : STACKTOP = i2;
36679 0 : return;
36680 0 : } else {
36681 0 : if ((i3 | 0) != 0) {
36682 0 : STACKTOP = i2;
36683 0 : return;
36684 0 : }
36685 0 : i3 = i1 + 8 | 0;
36686 0 : i4 = HEAP32[i3 >> 2] | 0;
36687 0 : i1 = _luaS_newlstr(i1, 936, 0) | 0;
36688 0 : HEAP32[i4 >> 2] = i1;
36689 0 : HEAP32[i4 + 8 >> 2] = HEAPU8[i1 + 4 | 0] | 0 | 64;
36690 0 : HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
36691 0 : STACKTOP = i2;
36692 0 : return;
36693 0 : }
36694 1 : }
36695 1 : function _ll_loadfunc(i1, i4, i3) {
36696 0 : i1 = i1 | 0;
36697 0 : i4 = i4 | 0;
36698 0 : i3 = i3 | 0;
36699 0 : var i2 = 0;
36700 0 : i2 = STACKTOP;
36701 0 : _lua_getfield(i1, -1001e3, 4184);
36702 0 : _lua_getfield(i1, -1, i4);
36703 0 : i4 = _lua_touserdata(i1, -1) | 0;
36704 0 : _lua_settop(i1, -3);
36705 0 : if ((i4 | 0) == 0) {
36706 0 : _lua_pushlstring(i1, 4968, 58) | 0;
36707 0 : i4 = 1;
36708 0 : STACKTOP = i2;
36709 0 : return i4 | 0;
36710 0 : }
36711 0 : if ((HEAP8[i3] | 0) == 42) {
36712 0 : _lua_pushboolean(i1, 1);
36713 0 : i4 = 0;
36714 0 : STACKTOP = i2;
36715 0 : return i4 | 0;
36716 0 : } else {
36717 0 : _lua_pushlstring(i1, 4968, 58) | 0;
36718 0 : i4 = 2;
36719 0 : STACKTOP = i2;
36720 0 : return i4 | 0;
36721 0 : }
36722 0 : return 0;
36723 1 : }
36724 1 : function _memset(i1, i4, i3) {
36725 0 : i1 = i1 | 0;
36726 0 : i4 = i4 | 0;
36727 0 : i3 = i3 | 0;
36728 0 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
36729 0 : i2 = i1 + i3 | 0;
36730 0 : if ((i3 | 0) >= 20) {
36731 0 : i4 = i4 & 255;
36732 0 : i7 = i1 & 3;
36733 0 : i6 = i4 | i4 << 8 | i4 << 16 | i4 << 24;
36734 0 : i5 = i2 & ~3;
36735 0 : if (i7) {
36736 0 : i7 = i1 + 4 - i7 | 0;
36737 0 : while ((i1 | 0) < (i7 | 0)) {
36738 0 : HEAP8[i1] = i4;
36739 0 : i1 = i1 + 1 | 0;
36740 0 : }
36741 0 : }
36742 0 : while ((i1 | 0) < (i5 | 0)) {
36743 0 : HEAP32[i1 >> 2] = i6;
36744 0 : i1 = i1 + 4 | 0;
36745 0 : }
36746 0 : }
36747 0 : while ((i1 | 0) < (i2 | 0)) {
36748 0 : HEAP8[i1] = i4;
36749 0 : i1 = i1 + 1 | 0;
36750 0 : }
36751 0 : return i1 - i3 | 0;
36752 1 : }
36753 1 : function _luaD_growstack(i1, i3) {
36754 0 : i1 = i1 | 0;
36755 0 : i3 = i3 | 0;
36756 0 : var i2 = 0, i4 = 0;
36757 0 : i2 = STACKTOP;
36758 0 : STACKTOP = STACKTOP + 16 | 0;
36759 0 : i4 = HEAP32[i1 + 32 >> 2] | 0;
36760 0 : if ((i4 | 0) > 1e6) {
36761 0 : _luaD_throw(i1, 6);
36762 0 : }
36763 0 : i3 = i3 + 5 + ((HEAP32[i1 + 8 >> 2] | 0) - (HEAP32[i1 + 28 >> 2] | 0) >> 4) | 0;
36764 0 : i4 = i4 << 1;
36765 0 : i4 = (i4 | 0) > 1e6 ? 1e6 : i4;
36766 0 : i3 = (i4 | 0) < (i3 | 0) ? i3 : i4;
36767 0 : if ((i3 | 0) > 1e6) {
36768 0 : _luaD_reallocstack(i1, 1000200);
36769 0 : _luaG_runerror(i1, 2224, i2);
36770 0 : } else {
36771 0 : _luaD_reallocstack(i1, i3);
36772 0 : STACKTOP = i2;
36773 0 : return;
36774 0 : }
36775 1 : }
36776 1 : function _luaL_callmeta(i1, i4, i3) {
36777 0 : i1 = i1 | 0;
36778 0 : i4 = i4 | 0;
36779 0 : i3 = i3 | 0;
36780 0 : var i2 = 0;
36781 0 : i2 = STACKTOP;
36782 0 : i4 = _lua_absindex(i1, i4) | 0;
36783 0 : if ((_lua_getmetatable(i1, i4) | 0) == 0) {
36784 0 : i4 = 0;
36785 0 : STACKTOP = i2;
36786 0 : return i4 | 0;
36787 0 : }
36788 0 : _lua_pushstring(i1, i3) | 0;
36789 0 : _lua_rawget(i1, -2);
36790 0 : if ((_lua_type(i1, -1) | 0) == 0) {
36791 0 : _lua_settop(i1, -3);
36792 0 : i4 = 0;
36793 0 : STACKTOP = i2;
36794 0 : return i4 | 0;
36795 0 : } else {
36796 0 : _lua_remove(i1, -2);
36797 0 : _lua_pushvalue(i1, i4);
36798 0 : _lua_callk(i1, 1, 1, 0, 0);
36799 0 : i4 = 1;
36800 0 : STACKTOP = i2;
36801 0 : return i4 | 0;
36802 0 : }
36803 0 : return 0;
36804 1 : }
36805 5 : function _luaK_reserveregs(i8, i7) {
36806 5 : i8 = i8 | 0;
36807 5 : i7 = i7 | 0;
36808 5 : var i1 = 0, i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
36809 5 : i3 = STACKTOP;
36810 5 : i2 = i8 + 48 | 0;
36811 5 : i6 = HEAP8[i2] | 0;
36812 5 : i4 = (i6 & 255) + i7 | 0;
36813 5 : i5 = (HEAP32[i8 >> 2] | 0) + 78 | 0;
36814 5 : do {
36815 5 : if ((i4 | 0) > (HEAPU8[i5] | 0 | 0)) {
36816 5 : if ((i4 | 0) > 249) {
36817 5 : _luaX_syntaxerror(HEAP32[i8 + 12 >> 2] | 0, 10536);
36818 5 : } else {
36819 5 : HEAP8[i5] = i4;
36820 5 : i1 = HEAP8[i2] | 0;
36821 5 : break;
36822 5 : }
36823 5 : } else {
36824 5 : i1 = i6;
36825 5 : }
36826 5 : } while (0);
36827 5 : HEAP8[i2] = (i1 & 255) + i7;
36828 5 : STACKTOP = i3;
36829 5 : return;
36830 5 : }
36831 1 : function _aux_lines(i1, i5) {
36832 0 : i1 = i1 | 0;
36833 0 : i5 = i5 | 0;
36834 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
36835 0 : i4 = STACKTOP;
36836 0 : i3 = _lua_gettop(i1) | 0;
36837 0 : i2 = i3 + -1 | 0;
36838 0 : if ((i3 | 0) >= 19) {
36839 0 : _luaL_argerror(i1, 17, 3320) | 0;
36840 0 : }
36841 0 : _lua_pushvalue(i1, 1);
36842 0 : _lua_pushinteger(i1, i2);
36843 0 : _lua_pushboolean(i1, i5);
36844 0 : if ((i3 | 0) >= 2) {
36845 0 : i5 = 1;
36846 0 : while (1) {
36847 0 : i6 = i5 + 1 | 0;
36848 0 : _lua_pushvalue(i1, i6);
36849 0 : if ((i5 | 0) < (i2 | 0)) {
36850 0 : i5 = i6;
36851 0 : } else {
36852 0 : break;
36853 0 : }
36854 0 : }
36855 0 : }
36856 0 : _lua_pushcclosure(i1, 155, i3 + 2 | 0);
36857 0 : STACKTOP = i4;
36858 0 : return;
36859 1 : }
36860 223 : function _memcmp(i2, i4, i3) {
36861 223 : i2 = i2 | 0;
36862 223 : i4 = i4 | 0;
36863 223 : i3 = i3 | 0;
36864 223 : var i1 = 0, i5 = 0, i6 = 0;
36865 223 : i1 = STACKTOP;
36866 223 : L1 : do {
36867 223 : if ((i3 | 0) == 0) {
36868 223 : i2 = 0;
36869 223 : } else {
36870 223 : while (1) {
36871 223 : i6 = HEAP8[i2] | 0;
36872 223 : i5 = HEAP8[i4] | 0;
36873 223 : if (!(i6 << 24 >> 24 == i5 << 24 >> 24)) {
36874 223 : break;
36875 223 : }
36876 223 : i3 = i3 + -1 | 0;
36877 223 : if ((i3 | 0) == 0) {
36878 223 : i2 = 0;
36879 223 : break L1;
36880 223 : } else {
36881 223 : i2 = i2 + 1 | 0;
36882 223 : i4 = i4 + 1 | 0;
36883 223 : }
36884 223 : }
36885 223 : i2 = (i6 & 255) - (i5 & 255) | 0;
36886 223 : }
36887 223 : } while (0);
36888 223 : STACKTOP = i1;
36889 223 : return i2 | 0;
36890 223 : }
36891 1 : function _b_arshift(i1) {
36892 0 : i1 = i1 | 0;
36893 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
36894 0 : i2 = STACKTOP;
36895 0 : i3 = _luaL_checkunsigned(i1, 1) | 0;
36896 0 : i4 = _luaL_checkinteger(i1, 2) | 0;
36897 0 : if ((i4 | 0) > -1 & (i3 | 0) < 0) {
36898 0 : if ((i4 | 0) > 31) {
36899 0 : i3 = -1;
36900 0 : } else {
36901 0 : i3 = i3 >>> i4 | ~(-1 >>> i4);
36902 0 : }
36903 0 : _lua_pushunsigned(i1, i3);
36904 0 : STACKTOP = i2;
36905 0 : return 1;
36906 0 : }
36907 0 : i5 = 0 - i4 | 0;
36908 0 : if ((i4 | 0) > 0) {
36909 0 : i3 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
36910 0 : } else {
36911 0 : i3 = (i5 | 0) > 31 ? 0 : i3 << i5;
36912 0 : }
36913 0 : _lua_pushunsigned(i1, i3);
36914 0 : STACKTOP = i2;
36915 0 : return 1;
36916 1 : }
36917 1 : function _luaL_checkunsigned(i1, i5) {
36918 0 : i1 = i1 | 0;
36919 0 : i5 = i5 | 0;
36920 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
36921 0 : i3 = STACKTOP;
36922 0 : STACKTOP = STACKTOP + 16 | 0;
36923 0 : i4 = i3;
36924 0 : i6 = i3 + 8 | 0;
36925 0 : i2 = _lua_tounsignedx(i1, i5, i6) | 0;
36926 0 : if ((HEAP32[i6 >> 2] | 0) != 0) {
36927 0 : STACKTOP = i3;
36928 0 : return i2 | 0;
36929 0 : }
36930 0 : i7 = _lua_typename(i1, 3) | 0;
36931 0 : i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
36932 0 : HEAP32[i4 >> 2] = i7;
36933 0 : HEAP32[i4 + 4 >> 2] = i6;
36934 0 : _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
36935 0 : STACKTOP = i3;
36936 0 : return i2 | 0;
36937 1 : }
36938 1 : function _luaB_loadfile(i2) {
36939 0 : i2 = i2 | 0;
36940 0 : var i1 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
36941 0 : i1 = STACKTOP;
36942 0 : i4 = _luaL_optlstring(i2, 1, 0, 0) | 0;
36943 0 : i5 = _luaL_optlstring(i2, 2, 0, 0) | 0;
36944 0 : i3 = (_lua_type(i2, 3) | 0) != -1;
36945 0 : i6 = i3 ? 3 : 0;
36946 0 : if ((_luaL_loadfilex(i2, i4, i5) | 0) == 0) {
36947 0 : if (i3 ? (_lua_pushvalue(i2, i6), (_lua_setupvalue(i2, -2, 1) | 0) == 0) : 0) {
36948 0 : _lua_settop(i2, -2);
36949 0 : i2 = 1;
36950 0 : } else {
36951 0 : i2 = 1;
36952 0 : }
36953 0 : } else {
36954 0 : _lua_pushnil(i2);
36955 0 : _lua_insert(i2, -2);
36956 0 : i2 = 2;
36957 0 : }
36958 0 : STACKTOP = i1;
36959 0 : return i2 | 0;
36960 1 : }
36961 1 : function _luaL_checkinteger(i1, i5) {
36962 0 : i1 = i1 | 0;
36963 0 : i5 = i5 | 0;
36964 0 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
36965 0 : i3 = STACKTOP;
36966 0 : STACKTOP = STACKTOP + 16 | 0;
36967 0 : i4 = i3;
36968 0 : i6 = i3 + 8 | 0;
36969 0 : i2 = _lua_tointegerx(i1, i5, i6) | 0;
36970 0 : if ((HEAP32[i6 >> 2] | 0) != 0) {
36971 0 : STACKTOP = i3;
36972 0 : return i2 | 0;
36973 0 : }
36974 0 : i7 = _lua_typename(i1, 3) | 0;
36975 0 : i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
36976 0 : HEAP32[i4 >> 2] = i7;
36977 0 : HEAP32[i4 + 4 >> 2] = i6;
36978 0 : _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
36979 0 : STACKTOP = i3;
36980 0 : return i2 | 0;
36981 1 : }
36982 1 : function _luaB_select(i1) {
36983 0 : i1 = i1 | 0;
36984 0 : var i2 = 0, i3 = 0, i4 = 0;
36985 0 : i3 = STACKTOP;
36986 0 : i2 = _lua_gettop(i1) | 0;
36987 0 : if ((_lua_type(i1, 1) | 0) == 4 ? (HEAP8[_lua_tolstring(i1, 1, 0) | 0] | 0) == 35 : 0) {
36988 0 : _lua_pushinteger(i1, i2 + -1 | 0);
36989 0 : i4 = 1;
36990 0 : STACKTOP = i3;
36991 0 : return i4 | 0;
36992 0 : }
36993 0 : i4 = _luaL_checkinteger(i1, 1) | 0;
36994 0 : if ((i4 | 0) < 0) {
36995 0 : i4 = i4 + i2 | 0;
36996 0 : } else {
36997 0 : i4 = (i4 | 0) > (i2 | 0) ? i2 : i4;
36998 0 : }
36999 0 : if ((i4 | 0) <= 0) {
37000 0 : _luaL_argerror(i1, 1, 9760) | 0;
37001 0 : }
37002 0 : i4 = i2 - i4 | 0;
37003 0 : STACKTOP = i3;
37004 0 : return i4 | 0;
37005 1 : }
37006 322 : function _luaX_next(i1) {
37007 322 : i1 = i1 | 0;
37008 322 : var i2 = 0, i3 = 0;
37009 322 : i2 = STACKTOP;
37010 322 : HEAP32[i1 + 8 >> 2] = HEAP32[i1 + 4 >> 2];
37011 322 : i3 = i1 + 32 | 0;
37012 322 : if ((HEAP32[i3 >> 2] | 0) == 286) {
37013 322 : HEAP32[i1 + 16 >> 2] = _llex(i1, i1 + 24 | 0) | 0;
37014 322 : STACKTOP = i2;
37015 322 : return;
37016 322 : } else {
37017 322 : i1 = i1 + 16 | 0;
37018 322 : HEAP32[i1 + 0 >> 2] = HEAP32[i3 + 0 >> 2];
37019 322 : HEAP32[i1 + 4 >> 2] = HEAP32[i3 + 4 >> 2];
37020 322 : HEAP32[i1 + 8 >> 2] = HEAP32[i3 + 8 >> 2];
37021 322 : HEAP32[i1 + 12 >> 2] = HEAP32[i3 + 12 >> 2];
37022 322 : HEAP32[i3 >> 2] = 286;
37023 322 : STACKTOP = i2;
37024 322 : return;
37025 322 : }
37026 322 : }
37027 12 : function _lua_setglobal(i1, i2) {
37028 12 : i1 = i1 | 0;
37029 12 : i2 = i2 | 0;
37030 12 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
37031 12 : i3 = STACKTOP;
37032 12 : i5 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
37033 12 : i4 = i1 + 8 | 0;
37034 12 : i6 = HEAP32[i4 >> 2] | 0;
37035 12 : HEAP32[i4 >> 2] = i6 + 16;
37036 12 : i2 = _luaS_new(i1, i2) | 0;
37037 12 : HEAP32[i6 >> 2] = i2;
37038 12 : HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
37039 12 : i2 = HEAP32[i4 >> 2] | 0;
37040 12 : _luaV_settable(i1, i5, i2 + -16 | 0, i2 + -32 | 0);
37041 12 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + -32;
37042 12 : STACKTOP = i3;
37043 12 : return;
37044 12 : }
37045 13 : function _luaL_checknumber(i1, i5) {
37046 13 : i1 = i1 | 0;
37047 13 : i5 = i5 | 0;
37048 13 : var d2 = 0.0, i3 = 0, i4 = 0, i6 = 0, i7 = 0;
37049 13 : i3 = STACKTOP;
37050 13 : STACKTOP = STACKTOP + 16 | 0;
37051 13 : i4 = i3;
37052 13 : i6 = i3 + 8 | 0;
37053 13 : d2 = +_lua_tonumberx(i1, i5, i6);
37054 13 : if ((HEAP32[i6 >> 2] | 0) != 0) {
37055 13 : STACKTOP = i3;
37056 13 : return +d2;
37057 13 : }
37058 13 : i7 = _lua_typename(i1, 3) | 0;
37059 13 : i6 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
37060 13 : HEAP32[i4 >> 2] = i7;
37061 13 : HEAP32[i4 + 4 >> 2] = i6;
37062 13 : _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i4) | 0) | 0;
37063 13 : STACKTOP = i3;
37064 13 : return +d2;
37065 13 : }
37066 4 : function _luaZ_fill(i1) {
37067 4 : i1 = i1 | 0;
37068 4 : var i2 = 0, i3 = 0, i4 = 0;
37069 4 : i2 = STACKTOP;
37070 4 : STACKTOP = STACKTOP + 16 | 0;
37071 4 : i4 = i2;
37072 4 : i3 = FUNCTION_TABLE_iiii[HEAP32[i1 + 8 >> 2] & 3](HEAP32[i1 + 16 >> 2] | 0, HEAP32[i1 + 12 >> 2] | 0, i4) | 0;
37073 4 : if ((i3 | 0) == 0) {
37074 4 : i4 = -1;
37075 4 : STACKTOP = i2;
37076 4 : return i4 | 0;
37077 4 : }
37078 4 : i4 = HEAP32[i4 >> 2] | 0;
37079 4 : if ((i4 | 0) == 0) {
37080 4 : i4 = -1;
37081 4 : STACKTOP = i2;
37082 4 : return i4 | 0;
37083 4 : }
37084 4 : HEAP32[i1 >> 2] = i4 + -1;
37085 4 : HEAP32[i1 + 4 >> 2] = i3 + 1;
37086 4 : i4 = HEAPU8[i3] | 0;
37087 4 : STACKTOP = i2;
37088 4 : return i4 | 0;
37089 4 : }
37090 17 : function _lua_createtable(i1, i3, i4) {
37091 17 : i1 = i1 | 0;
37092 17 : i3 = i3 | 0;
37093 17 : i4 = i4 | 0;
37094 17 : var i2 = 0, i5 = 0, i6 = 0, i7 = 0;
37095 17 : i2 = STACKTOP;
37096 17 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
37097 17 : _luaC_step(i1);
37098 17 : }
37099 17 : i5 = _luaH_new(i1) | 0;
37100 17 : i6 = i1 + 8 | 0;
37101 17 : i7 = HEAP32[i6 >> 2] | 0;
37102 17 : HEAP32[i7 >> 2] = i5;
37103 17 : HEAP32[i7 + 8 >> 2] = 69;
37104 17 : HEAP32[i6 >> 2] = (HEAP32[i6 >> 2] | 0) + 16;
37105 17 : if (!((i3 | 0) > 0 | (i4 | 0) > 0)) {
37106 17 : STACKTOP = i2;
37107 17 : return;
37108 17 : }
37109 17 : _luaH_resize(i1, i5, i3, i4);
37110 17 : STACKTOP = i2;
37111 17 : return;
37112 17 : }
37113 1 : function _generic_reader(i1, i3, i2) {
37114 0 : i1 = i1 | 0;
37115 0 : i3 = i3 | 0;
37116 0 : i2 = i2 | 0;
37117 0 : i3 = STACKTOP;
37118 0 : STACKTOP = STACKTOP + 16 | 0;
37119 0 : _luaL_checkstack(i1, 2, 9888);
37120 0 : _lua_pushvalue(i1, 1);
37121 0 : _lua_callk(i1, 0, 1, 0, 0);
37122 0 : if ((_lua_type(i1, -1) | 0) == 0) {
37123 0 : _lua_settop(i1, -2);
37124 0 : HEAP32[i2 >> 2] = 0;
37125 0 : i2 = 0;
37126 0 : STACKTOP = i3;
37127 0 : return i2 | 0;
37128 0 : }
37129 0 : if ((_lua_isstring(i1, -1) | 0) == 0) {
37130 0 : _luaL_error(i1, 9920, i3) | 0;
37131 0 : }
37132 0 : _lua_replace(i1, 5);
37133 0 : i2 = _lua_tolstring(i1, 5, i2) | 0;
37134 0 : STACKTOP = i3;
37135 0 : return i2 | 0;
37136 1 : }
37137 1 : function _luaZ_openspace(i5, i1, i6) {
37138 1 : i5 = i5 | 0;
37139 1 : i1 = i1 | 0;
37140 1 : i6 = i6 | 0;
37141 1 : var i2 = 0, i3 = 0, i4 = 0;
37142 1 : i2 = STACKTOP;
37143 1 : i4 = i1 + 8 | 0;
37144 1 : i3 = HEAP32[i4 >> 2] | 0;
37145 1 : if (!(i3 >>> 0 < i6 >>> 0)) {
37146 1 : i6 = HEAP32[i1 >> 2] | 0;
37147 1 : STACKTOP = i2;
37148 1 : return i6 | 0;
37149 1 : }
37150 1 : i6 = i6 >>> 0 < 32 ? 32 : i6;
37151 1 : if ((i6 + 1 | 0) >>> 0 > 4294967293) {
37152 1 : _luaM_toobig(i5);
37153 1 : }
37154 1 : i5 = _luaM_realloc_(i5, HEAP32[i1 >> 2] | 0, i3, i6) | 0;
37155 1 : HEAP32[i1 >> 2] = i5;
37156 1 : HEAP32[i4 >> 2] = i6;
37157 1 : i6 = i5;
37158 1 : STACKTOP = i2;
37159 1 : return i6 | 0;
37160 1 : }
37161 10 : function _luaH_getstr(i4, i3) {
37162 10 : i4 = i4 | 0;
37163 10 : i3 = i3 | 0;
37164 10 : var i1 = 0, i2 = 0;
37165 10 : i2 = STACKTOP;
37166 10 : i4 = (HEAP32[i4 + 16 >> 2] | 0) + (((1 << (HEAPU8[i4 + 7 | 0] | 0)) + -1 & HEAP32[i3 + 8 >> 2]) << 5) | 0;
37167 10 : while (1) {
37168 10 : if ((HEAP32[i4 + 24 >> 2] | 0) == 68 ? (HEAP32[i4 + 16 >> 2] | 0) == (i3 | 0) : 0) {
37169 10 : break;
37170 10 : }
37171 10 : i4 = HEAP32[i4 + 28 >> 2] | 0;
37172 10 : if ((i4 | 0) == 0) {
37173 10 : i3 = 5192;
37174 10 : i1 = 6;
37175 10 : break;
37176 10 : }
37177 10 : }
37178 10 : if ((i1 | 0) == 6) {
37179 10 : STACKTOP = i2;
37180 10 : return i3 | 0;
37181 10 : }
37182 10 : STACKTOP = i2;
37183 10 : return i4 | 0;
37184 10 : }
37185 1 : function _b_extract(i1) {
37186 0 : i1 = i1 | 0;
37187 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37188 0 : i5 = STACKTOP;
37189 0 : STACKTOP = STACKTOP + 16 | 0;
37190 0 : i2 = _luaL_checkunsigned(i1, 1) | 0;
37191 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
37192 0 : i4 = _luaL_optinteger(i1, 3, 1) | 0;
37193 0 : if (!((i3 | 0) > -1)) {
37194 0 : _luaL_argerror(i1, 2, 10440) | 0;
37195 0 : }
37196 0 : if ((i4 | 0) <= 0) {
37197 0 : _luaL_argerror(i1, 3, 10472) | 0;
37198 0 : }
37199 0 : if ((i4 + i3 | 0) > 32) {
37200 0 : _luaL_error(i1, 10496, i5) | 0;
37201 0 : }
37202 0 : _lua_pushunsigned(i1, i2 >>> i3 & ~(-2 << i4 + -1));
37203 0 : STACKTOP = i5;
37204 0 : return 1;
37205 1 : }
37206 10 : function _luaL_checklstring(i1, i4, i5) {
37207 10 : i1 = i1 | 0;
37208 10 : i4 = i4 | 0;
37209 10 : i5 = i5 | 0;
37210 10 : var i2 = 0, i3 = 0, i6 = 0, i7 = 0;
37211 10 : i2 = STACKTOP;
37212 10 : STACKTOP = STACKTOP + 16 | 0;
37213 10 : i3 = i2;
37214 10 : i5 = _lua_tolstring(i1, i4, i5) | 0;
37215 10 : if ((i5 | 0) != 0) {
37216 10 : STACKTOP = i2;
37217 10 : return i5 | 0;
37218 10 : }
37219 10 : i7 = _lua_typename(i1, 4) | 0;
37220 10 : i6 = _lua_typename(i1, _lua_type(i1, i4) | 0) | 0;
37221 10 : HEAP32[i3 >> 2] = i7;
37222 10 : HEAP32[i3 + 4 >> 2] = i6;
37223 10 : _luaL_argerror(i1, i4, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
37224 10 : STACKTOP = i2;
37225 10 : return i5 | 0;
37226 10 : }
37227 1 : function _db_traceback(i1) {
37228 0 : i1 = i1 | 0;
37229 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
37230 0 : i2 = STACKTOP;
37231 0 : if ((_lua_type(i1, 1) | 0) == 8) {
37232 0 : i3 = _lua_tothread(i1, 1) | 0;
37233 0 : i4 = 1;
37234 0 : } else {
37235 0 : i3 = i1;
37236 0 : i4 = 0;
37237 0 : }
37238 0 : i5 = i4 + 1 | 0;
37239 0 : i6 = _lua_tolstring(i1, i5, 0) | 0;
37240 0 : if ((i6 | 0) == 0 ? (_lua_type(i1, i5) | 0) >= 1 : 0) {
37241 0 : _lua_pushvalue(i1, i5);
37242 0 : STACKTOP = i2;
37243 0 : return 1;
37244 0 : }
37245 0 : _luaL_traceback(i1, i3, i6, _luaL_optinteger(i1, i4 | 2, (i3 | 0) == (i1 | 0) | 0) | 0);
37246 0 : STACKTOP = i2;
37247 0 : return 1;
37248 1 : }
37249 1 : function _f_setvbuf(i1) {
37250 0 : i1 = i1 | 0;
37251 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37252 0 : i2 = STACKTOP;
37253 0 : STACKTOP = STACKTOP + 16 | 0;
37254 0 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
37255 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
37256 0 : _luaL_error(i1, 3080, i2) | 0;
37257 0 : }
37258 0 : i5 = HEAP32[i3 >> 2] | 0;
37259 0 : i4 = _luaL_checkoption(i1, 2, 0, 3128) | 0;
37260 0 : i3 = _luaL_optinteger(i1, 3, 1024) | 0;
37261 0 : i3 = _luaL_fileresult(i1, (_setvbuf(i5 | 0, 0, HEAP32[3112 + (i4 << 2) >> 2] | 0, i3 | 0) | 0) == 0 | 0, 0) | 0;
37262 0 : STACKTOP = i2;
37263 0 : return i3 | 0;
37264 1 : }
37265 1 : function _luaU_dump(i3, i1, i4, i2, i5) {
37266 0 : i3 = i3 | 0;
37267 0 : i1 = i1 | 0;
37268 0 : i4 = i4 | 0;
37269 0 : i2 = i2 | 0;
37270 0 : i5 = i5 | 0;
37271 0 : var i6 = 0, i7 = 0, i8 = 0;
37272 0 : i6 = STACKTOP;
37273 0 : STACKTOP = STACKTOP + 48 | 0;
37274 0 : i8 = i6 + 20 | 0;
37275 0 : i7 = i6;
37276 0 : HEAP32[i7 >> 2] = i3;
37277 0 : HEAP32[i7 + 4 >> 2] = i4;
37278 0 : HEAP32[i7 + 8 >> 2] = i2;
37279 0 : HEAP32[i7 + 12 >> 2] = i5;
37280 0 : i5 = i7 + 16 | 0;
37281 0 : _luaU_header(i8);
37282 0 : HEAP32[i5 >> 2] = FUNCTION_TABLE_iiiii[i4 & 3](i3, i8, 18, i2) | 0;
37283 0 : _DumpFunction(i1, i7);
37284 0 : STACKTOP = i6;
37285 0 : return HEAP32[i5 >> 2] | 0;
37286 1 : }
37287 1 : function _luaB_setmetatable(i1) {
37288 0 : i1 = i1 | 0;
37289 0 : var i2 = 0, i3 = 0;
37290 0 : i2 = STACKTOP;
37291 0 : STACKTOP = STACKTOP + 16 | 0;
37292 0 : i3 = _lua_type(i1, 2) | 0;
37293 0 : _luaL_checktype(i1, 1, 5);
37294 0 : if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
37295 0 : _luaL_argerror(i1, 2, 9680) | 0;
37296 0 : }
37297 0 : if ((_luaL_getmetafield(i1, 1, 9704) | 0) == 0) {
37298 0 : _lua_settop(i1, 2);
37299 0 : _lua_setmetatable(i1, 1) | 0;
37300 0 : i3 = 1;
37301 0 : STACKTOP = i2;
37302 0 : return i3 | 0;
37303 0 : } else {
37304 0 : i3 = _luaL_error(i1, 9720, i2) | 0;
37305 0 : STACKTOP = i2;
37306 0 : return i3 | 0;
37307 0 : }
37308 0 : return 0;
37309 1 : }
37310 4 : function _getF(i3, i2, i1) {
37311 4 : i3 = i3 | 0;
37312 4 : i2 = i2 | 0;
37313 4 : i1 = i1 | 0;
37314 4 : var i4 = 0;
37315 4 : i3 = STACKTOP;
37316 4 : i4 = HEAP32[i2 >> 2] | 0;
37317 4 : if ((i4 | 0) > 0) {
37318 4 : HEAP32[i1 >> 2] = i4;
37319 4 : HEAP32[i2 >> 2] = 0;
37320 4 : i4 = i2 + 8 | 0;
37321 4 : STACKTOP = i3;
37322 4 : return i4 | 0;
37323 4 : }
37324 4 : i4 = i2 + 4 | 0;
37325 4 : if ((_feof(HEAP32[i4 >> 2] | 0) | 0) != 0) {
37326 4 : i4 = 0;
37327 4 : STACKTOP = i3;
37328 4 : return i4 | 0;
37329 4 : }
37330 4 : i2 = i2 + 8 | 0;
37331 4 : HEAP32[i1 >> 2] = _fread(i2 | 0, 1, 1024, HEAP32[i4 >> 2] | 0) | 0;
37332 4 : i4 = i2;
37333 4 : STACKTOP = i3;
37334 4 : return i4 | 0;
37335 4 : }
37336 1 : function _luaL_where(i1, i6) {
37337 0 : i1 = i1 | 0;
37338 0 : i6 = i6 | 0;
37339 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37340 0 : i4 = STACKTOP;
37341 0 : STACKTOP = STACKTOP + 112 | 0;
37342 0 : i3 = i4;
37343 0 : i2 = i4 + 8 | 0;
37344 0 : if ((_lua_getstack(i1, i6, i2) | 0) != 0 ? (_lua_getinfo(i1, 1152, i2) | 0, i5 = HEAP32[i2 + 20 >> 2] | 0, (i5 | 0) > 0) : 0) {
37345 0 : HEAP32[i3 >> 2] = i2 + 36;
37346 0 : HEAP32[i3 + 4 >> 2] = i5;
37347 0 : _lua_pushfstring(i1, 1160, i3) | 0;
37348 0 : STACKTOP = i4;
37349 0 : return;
37350 0 : }
37351 0 : _lua_pushlstring(i1, 1168, 0) | 0;
37352 0 : STACKTOP = i4;
37353 0 : return;
37354 1 : }
37355 1 : function _hookf(i1, i3) {
37356 0 : i1 = i1 | 0;
37357 0 : i3 = i3 | 0;
37358 0 : var i2 = 0;
37359 0 : i2 = STACKTOP;
37360 0 : _luaL_getsubtable(i1, -1001e3, 11584) | 0;
37361 0 : _lua_pushthread(i1) | 0;
37362 0 : _lua_rawget(i1, -2);
37363 0 : if ((_lua_type(i1, -1) | 0) != 6) {
37364 0 : STACKTOP = i2;
37365 0 : return;
37366 0 : }
37367 0 : _lua_pushstring(i1, HEAP32[11608 + (HEAP32[i3 >> 2] << 2) >> 2] | 0) | 0;
37368 0 : i3 = HEAP32[i3 + 20 >> 2] | 0;
37369 0 : if ((i3 | 0) > -1) {
37370 0 : _lua_pushinteger(i1, i3);
37371 0 : } else {
37372 0 : _lua_pushnil(i1);
37373 0 : }
37374 0 : _lua_callk(i1, 2, 0, 0, 0);
37375 0 : STACKTOP = i2;
37376 0 : return;
37377 1 : }
37378 1 : function _luaV_tonumber(i5, i2) {
37379 1 : i5 = i5 | 0;
37380 1 : i2 = i2 | 0;
37381 1 : var i1 = 0, i3 = 0, i4 = 0;
37382 1 : i1 = STACKTOP;
37383 1 : STACKTOP = STACKTOP + 16 | 0;
37384 1 : i3 = i1;
37385 1 : i4 = HEAP32[i5 + 8 >> 2] | 0;
37386 1 : if ((i4 | 0) != 3) {
37387 1 : if ((i4 & 15 | 0) == 4 ? (i5 = HEAP32[i5 >> 2] | 0, (_luaO_str2d(i5 + 16 | 0, HEAP32[i5 + 12 >> 2] | 0, i3) | 0) != 0) : 0) {
37388 1 : HEAPF64[i2 >> 3] = +HEAPF64[i3 >> 3];
37389 1 : HEAP32[i2 + 8 >> 2] = 3;
37390 1 : } else {
37391 1 : i2 = 0;
37392 1 : }
37393 1 : } else {
37394 1 : i2 = i5;
37395 1 : }
37396 1 : STACKTOP = i1;
37397 1 : return i2 | 0;
37398 1 : }
37399 1 : function _luaO_arith(i3, d1, d2) {
37400 0 : i3 = i3 | 0;
37401 0 : d1 = +d1;
37402 0 : d2 = +d2;
37403 0 : switch (i3 | 0) {
37404 0 : case 4:
37405 0 : {
37406 0 : d1 = d1 - +Math_floor(+(d1 / d2)) * d2;
37407 0 : break;
37408 0 : }
37409 0 : case 6:
37410 0 : {
37411 0 : d1 = -d1;
37412 0 : break;
37413 0 : }
37414 0 : case 0:
37415 0 : {
37416 0 : d1 = d1 + d2;
37417 0 : break;
37418 0 : }
37419 0 : case 1:
37420 0 : {
37421 0 : d1 = d1 - d2;
37422 0 : break;
37423 0 : }
37424 0 : case 5:
37425 0 : {
37426 0 : d1 = +Math_pow(+d1, +d2);
37427 0 : break;
37428 0 : }
37429 0 : case 3:
37430 0 : {
37431 0 : d1 = d1 / d2;
37432 0 : break;
37433 0 : }
37434 0 : case 2:
37435 0 : {
37436 0 : d1 = d1 * d2;
37437 0 : break;
37438 0 : }
37439 0 : default:
37440 0 : {
37441 0 : d1 = 0.0;
37442 0 : }
37443 0 : }
37444 0 : return +d1;
37445 1 : }
37446 1 : function _luaB_coresume(i1) {
37447 0 : i1 = i1 | 0;
37448 0 : var i2 = 0, i3 = 0;
37449 0 : i2 = STACKTOP;
37450 0 : i3 = _lua_tothread(i1, 1) | 0;
37451 0 : if ((i3 | 0) == 0) {
37452 0 : _luaL_argerror(i1, 1, 10856) | 0;
37453 0 : }
37454 0 : i3 = _auxresume(i1, i3, (_lua_gettop(i1) | 0) + -1 | 0) | 0;
37455 0 : if ((i3 | 0) < 0) {
37456 0 : _lua_pushboolean(i1, 0);
37457 0 : _lua_insert(i1, -2);
37458 0 : i3 = 2;
37459 0 : STACKTOP = i2;
37460 0 : return i3 | 0;
37461 0 : } else {
37462 0 : _lua_pushboolean(i1, 1);
37463 0 : _lua_insert(i1, ~i3);
37464 0 : i3 = i3 + 1 | 0;
37465 0 : STACKTOP = i2;
37466 0 : return i3 | 0;
37467 0 : }
37468 0 : return 0;
37469 1 : }
37470 1 : function _pairsmeta(i1, i5, i4, i3) {
37471 0 : i1 = i1 | 0;
37472 0 : i5 = i5 | 0;
37473 0 : i4 = i4 | 0;
37474 0 : i3 = i3 | 0;
37475 0 : var i2 = 0;
37476 0 : i2 = STACKTOP;
37477 0 : if ((_luaL_getmetafield(i1, 1, i5) | 0) != 0) {
37478 0 : _lua_pushvalue(i1, 1);
37479 0 : _lua_callk(i1, 1, 3, 0, 0);
37480 0 : STACKTOP = i2;
37481 0 : return;
37482 0 : }
37483 0 : _luaL_checktype(i1, 1, 5);
37484 0 : _lua_pushcclosure(i1, i3, 0);
37485 0 : _lua_pushvalue(i1, 1);
37486 0 : if ((i4 | 0) == 0) {
37487 0 : _lua_pushnil(i1);
37488 0 : STACKTOP = i2;
37489 0 : return;
37490 0 : } else {
37491 0 : _lua_pushinteger(i1, 0);
37492 0 : STACKTOP = i2;
37493 0 : return;
37494 0 : }
37495 1 : }
37496 1 : function _io_close(i1) {
37497 0 : i1 = i1 | 0;
37498 0 : var i2 = 0, i3 = 0, i4 = 0;
37499 0 : i2 = STACKTOP;
37500 0 : STACKTOP = STACKTOP + 16 | 0;
37501 0 : if ((_lua_type(i1, 1) | 0) == -1) {
37502 0 : _lua_getfield(i1, -1001e3, 2800);
37503 0 : }
37504 0 : if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
37505 0 : _luaL_error(i1, 3080, i2) | 0;
37506 0 : }
37507 0 : i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
37508 0 : i3 = HEAP32[i4 >> 2] | 0;
37509 0 : HEAP32[i4 >> 2] = 0;
37510 0 : i1 = FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
37511 0 : STACKTOP = i2;
37512 0 : return i1 | 0;
37513 1 : }
37514 1 : function _pack(i1) {
37515 0 : i1 = i1 | 0;
37516 0 : var i2 = 0, i3 = 0;
37517 0 : i2 = STACKTOP;
37518 0 : i3 = _lua_gettop(i1) | 0;
37519 0 : _lua_createtable(i1, i3, 1);
37520 0 : _lua_pushinteger(i1, i3);
37521 0 : _lua_setfield(i1, -2, 8312);
37522 0 : if ((i3 | 0) <= 0) {
37523 0 : STACKTOP = i2;
37524 0 : return 1;
37525 0 : }
37526 0 : _lua_pushvalue(i1, 1);
37527 0 : _lua_rawseti(i1, -2, 1);
37528 0 : _lua_replace(i1, 1);
37529 0 : if ((i3 | 0) <= 1) {
37530 0 : STACKTOP = i2;
37531 0 : return 1;
37532 0 : }
37533 0 : do {
37534 0 : _lua_rawseti(i1, 1, i3);
37535 0 : i3 = i3 + -1 | 0;
37536 0 : } while ((i3 | 0) > 1);
37537 0 : STACKTOP = i2;
37538 0 : return 1;
37539 1 : }
37540 1 : function _luaL_execresult(i1, i3) {
37541 0 : i1 = i1 | 0;
37542 0 : i3 = i3 | 0;
37543 0 : var i2 = 0;
37544 0 : i2 = STACKTOP;
37545 0 : if ((i3 | 0) == -1) {
37546 0 : i3 = HEAP32[(___errno_location() | 0) >> 2] | 0;
37547 0 : _lua_pushnil(i1);
37548 0 : _lua_pushstring(i1, _strerror(i3 | 0) | 0) | 0;
37549 0 : _lua_pushinteger(i1, i3);
37550 0 : STACKTOP = i2;
37551 0 : return 3;
37552 0 : } else if ((i3 | 0) == 0) {
37553 0 : _lua_pushboolean(i1, 1);
37554 0 : } else {
37555 0 : _lua_pushnil(i1);
37556 0 : }
37557 0 : _lua_pushstring(i1, 1184) | 0;
37558 0 : _lua_pushinteger(i1, i3);
37559 0 : STACKTOP = i2;
37560 0 : return 3;
37561 1 : }
37562 1 : function _lua_getglobal(i1, i2) {
37563 0 : i1 = i1 | 0;
37564 0 : i2 = i2 | 0;
37565 0 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
37566 0 : i3 = STACKTOP;
37567 0 : i4 = _luaH_getint(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 40 >> 2] | 0, 2) | 0;
37568 0 : i5 = i1 + 8 | 0;
37569 0 : i6 = HEAP32[i5 >> 2] | 0;
37570 0 : HEAP32[i5 >> 2] = i6 + 16;
37571 0 : i2 = _luaS_new(i1, i2) | 0;
37572 0 : HEAP32[i6 >> 2] = i2;
37573 0 : HEAP32[i6 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
37574 0 : i2 = (HEAP32[i5 >> 2] | 0) + -16 | 0;
37575 0 : _luaV_gettable(i1, i4, i2, i2);
37576 0 : STACKTOP = i3;
37577 0 : return;
37578 1 : }
37579 1 : function _luaL_checktype(i1, i5, i4) {
37580 0 : i1 = i1 | 0;
37581 0 : i5 = i5 | 0;
37582 0 : i4 = i4 | 0;
37583 0 : var i2 = 0, i3 = 0, i6 = 0;
37584 0 : i2 = STACKTOP;
37585 0 : STACKTOP = STACKTOP + 16 | 0;
37586 0 : i3 = i2;
37587 0 : if ((_lua_type(i1, i5) | 0) == (i4 | 0)) {
37588 0 : STACKTOP = i2;
37589 0 : return;
37590 0 : }
37591 0 : i6 = _lua_typename(i1, i4) | 0;
37592 0 : i4 = _lua_typename(i1, _lua_type(i1, i5) | 0) | 0;
37593 0 : HEAP32[i3 >> 2] = i6;
37594 0 : HEAP32[i3 + 4 >> 2] = i4;
37595 0 : _luaL_argerror(i1, i5, _lua_pushfstring(i1, 1744, i3) | 0) | 0;
37596 0 : STACKTOP = i2;
37597 0 : return;
37598 1 : }
37599 143275 : function _luaC_newobj(i7, i4, i6, i5, i1) {
37600 143275 : i7 = i7 | 0;
37601 143275 : i4 = i4 | 0;
37602 143275 : i6 = i6 | 0;
37603 143275 : i5 = i5 | 0;
37604 143275 : i1 = i1 | 0;
37605 143275 : var i2 = 0, i3 = 0;
37606 143275 : i2 = STACKTOP;
37607 143275 : i3 = HEAP32[i7 + 12 >> 2] | 0;
37608 143275 : i7 = _luaM_realloc_(i7, 0, i4 & 15, i6) | 0;
37609 143275 : i6 = i7 + i1 | 0;
37610 143275 : i5 = (i5 | 0) == 0 ? i3 + 68 | 0 : i5;
37611 143275 : HEAP8[i7 + (i1 + 5) | 0] = HEAP8[i3 + 60 | 0] & 3;
37612 143275 : HEAP8[i7 + (i1 + 4) | 0] = i4;
37613 143275 : HEAP32[i6 >> 2] = HEAP32[i5 >> 2];
37614 143275 : HEAP32[i5 >> 2] = i6;
37615 143275 : STACKTOP = i2;
37616 143275 : return i6 | 0;
37617 143275 : }
37618 10 : function _luaL_requiref(i1, i3, i5, i4) {
37619 10 : i1 = i1 | 0;
37620 10 : i3 = i3 | 0;
37621 10 : i5 = i5 | 0;
37622 10 : i4 = i4 | 0;
37623 10 : var i2 = 0;
37624 10 : i2 = STACKTOP;
37625 10 : _lua_pushcclosure(i1, i5, 0);
37626 10 : _lua_pushstring(i1, i3) | 0;
37627 10 : _lua_callk(i1, 1, 1, 0, 0);
37628 10 : _luaL_getsubtable(i1, -1001e3, 1432) | 0;
37629 10 : _lua_pushvalue(i1, -2);
37630 10 : _lua_setfield(i1, -2, i3);
37631 10 : _lua_settop(i1, -2);
37632 10 : if ((i4 | 0) == 0) {
37633 10 : STACKTOP = i2;
37634 10 : return;
37635 10 : }
37636 10 : _lua_pushvalue(i1, -1);
37637 10 : _lua_setglobal(i1, i3);
37638 10 : STACKTOP = i2;
37639 10 : return;
37640 10 : }
37641 1 : function _luaG_ordererror(i1, i3, i4) {
37642 0 : i1 = i1 | 0;
37643 0 : i3 = i3 | 0;
37644 0 : i4 = i4 | 0;
37645 0 : var i2 = 0;
37646 0 : i2 = STACKTOP;
37647 0 : STACKTOP = STACKTOP + 16 | 0;
37648 0 : i3 = HEAP32[8528 + ((HEAP32[i3 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
37649 0 : i4 = HEAP32[8528 + ((HEAP32[i4 + 8 >> 2] & 15) + 1 << 2) >> 2] | 0;
37650 0 : if ((i3 | 0) == (i4 | 0)) {
37651 0 : HEAP32[i2 >> 2] = i3;
37652 0 : _luaG_runerror(i1, 1952, i2);
37653 0 : } else {
37654 0 : HEAP32[i2 >> 2] = i3;
37655 0 : HEAP32[i2 + 4 >> 2] = i4;
37656 0 : _luaG_runerror(i1, 1992, i2);
37657 0 : }
37658 1 : }
37659 1 : function _io_popen(i1) {
37660 0 : i1 = i1 | 0;
37661 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37662 0 : i2 = STACKTOP;
37663 0 : STACKTOP = STACKTOP + 16 | 0;
37664 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
37665 0 : _luaL_optlstring(i1, 2, 3480, 0) | 0;
37666 0 : i5 = _lua_newuserdata(i1, 8) | 0;
37667 0 : i4 = i5 + 4 | 0;
37668 0 : HEAP32[i4 >> 2] = 0;
37669 0 : _luaL_setmetatable(i1, 2832);
37670 0 : _luaL_error(i1, 3488, i2) | 0;
37671 0 : HEAP32[i5 >> 2] = 0;
37672 0 : HEAP32[i4 >> 2] = 157;
37673 0 : i1 = _luaL_fileresult(i1, 0, i3) | 0;
37674 0 : STACKTOP = i2;
37675 0 : return i1 | 0;
37676 1 : }
37677 1 : function _sort_comp(i1, i3, i4) {
37678 0 : i1 = i1 | 0;
37679 0 : i3 = i3 | 0;
37680 0 : i4 = i4 | 0;
37681 0 : var i2 = 0;
37682 0 : i2 = STACKTOP;
37683 0 : if ((_lua_type(i1, 2) | 0) == 0) {
37684 0 : i4 = _lua_compare(i1, i3, i4, 1) | 0;
37685 0 : STACKTOP = i2;
37686 0 : return i4 | 0;
37687 0 : } else {
37688 0 : _lua_pushvalue(i1, 2);
37689 0 : _lua_pushvalue(i1, i3 + -1 | 0);
37690 0 : _lua_pushvalue(i1, i4 + -2 | 0);
37691 0 : _lua_callk(i1, 2, 1, 0, 0);
37692 0 : i4 = _lua_toboolean(i1, -1) | 0;
37693 0 : _lua_settop(i1, -2);
37694 0 : STACKTOP = i2;
37695 0 : return i4 | 0;
37696 0 : }
37697 0 : return 0;
37698 1 : }
37699 1 : function _db_upvalueid(i1) {
37700 0 : i1 = i1 | 0;
37701 0 : var i2 = 0, i3 = 0, i4 = 0;
37702 0 : i3 = STACKTOP;
37703 0 : STACKTOP = STACKTOP + 112 | 0;
37704 0 : i4 = i3;
37705 0 : i2 = _luaL_checkinteger(i1, 2) | 0;
37706 0 : _luaL_checktype(i1, 1, 6);
37707 0 : _lua_pushvalue(i1, 1);
37708 0 : _lua_getinfo(i1, 11728, i4) | 0;
37709 0 : if (!((i2 | 0) > 0 ? (i2 | 0) <= (HEAPU8[i4 + 32 | 0] | 0 | 0) : 0)) {
37710 0 : _luaL_argerror(i1, 2, 11736) | 0;
37711 0 : }
37712 0 : _lua_pushlightuserdata(i1, _lua_upvalueid(i1, 1, i2) | 0);
37713 0 : STACKTOP = i3;
37714 0 : return 1;
37715 1 : }
37716 1 : function _luaL_getmetafield(i2, i4, i3) {
37717 0 : i2 = i2 | 0;
37718 0 : i4 = i4 | 0;
37719 0 : i3 = i3 | 0;
37720 0 : var i1 = 0;
37721 0 : i1 = STACKTOP;
37722 0 : do {
37723 0 : if ((_lua_getmetatable(i2, i4) | 0) != 0) {
37724 0 : _lua_pushstring(i2, i3) | 0;
37725 0 : _lua_rawget(i2, -2);
37726 0 : if ((_lua_type(i2, -1) | 0) == 0) {
37727 0 : _lua_settop(i2, -3);
37728 0 : i2 = 0;
37729 0 : break;
37730 0 : } else {
37731 0 : _lua_remove(i2, -2);
37732 0 : i2 = 1;
37733 0 : break;
37734 0 : }
37735 0 : } else {
37736 0 : i2 = 0;
37737 0 : }
37738 0 : } while (0);
37739 0 : STACKTOP = i1;
37740 0 : return i2 | 0;
37741 1 : }
37742 3 : function _luaF_freeupval(i1, i3) {
37743 3 : i1 = i1 | 0;
37744 3 : i3 = i3 | 0;
37745 3 : var i2 = 0, i4 = 0, i5 = 0;
37746 3 : i2 = STACKTOP;
37747 3 : if ((HEAP32[i3 + 8 >> 2] | 0) == (i3 + 16 | 0)) {
37748 3 : _luaM_realloc_(i1, i3, 32, 0) | 0;
37749 3 : STACKTOP = i2;
37750 3 : return;
37751 3 : }
37752 3 : i4 = i3 + 16 | 0;
37753 3 : i5 = i4 + 4 | 0;
37754 3 : HEAP32[(HEAP32[i5 >> 2] | 0) + 16 >> 2] = HEAP32[i4 >> 2];
37755 3 : HEAP32[(HEAP32[i4 >> 2] | 0) + 20 >> 2] = HEAP32[i5 >> 2];
37756 3 : _luaM_realloc_(i1, i3, 32, 0) | 0;
37757 3 : STACKTOP = i2;
37758 3 : return;
37759 3 : }
37760 1 : function _luaL_addvalue(i1) {
37761 0 : i1 = i1 | 0;
37762 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0;
37763 0 : i2 = STACKTOP;
37764 0 : STACKTOP = STACKTOP + 16 | 0;
37765 0 : i4 = i2;
37766 0 : i5 = HEAP32[i1 + 12 >> 2] | 0;
37767 0 : i3 = _lua_tolstring(i5, -1, i4) | 0;
37768 0 : i6 = i1 + 16 | 0;
37769 0 : if ((HEAP32[i1 >> 2] | 0) != (i6 | 0)) {
37770 0 : _lua_insert(i5, -2);
37771 0 : }
37772 0 : _luaL_addlstring(i1, i3, HEAP32[i4 >> 2] | 0);
37773 0 : _lua_remove(i5, (HEAP32[i1 >> 2] | 0) != (i6 | 0) ? -2 : -1);
37774 0 : STACKTOP = i2;
37775 0 : return;
37776 1 : }
37777 1 : function _escerror(i1, i4, i3, i2) {
37778 0 : i1 = i1 | 0;
37779 0 : i4 = i4 | 0;
37780 0 : i3 = i3 | 0;
37781 0 : i2 = i2 | 0;
37782 0 : var i5 = 0, i6 = 0;
37783 0 : HEAP32[(HEAP32[i1 + 60 >> 2] | 0) + 4 >> 2] = 0;
37784 0 : _save(i1, 92);
37785 0 : L1 : do {
37786 0 : if ((i3 | 0) > 0) {
37787 0 : i5 = 0;
37788 0 : do {
37789 0 : i6 = HEAP32[i4 + (i5 << 2) >> 2] | 0;
37790 0 : if ((i6 | 0) == -1) {
37791 0 : break L1;
37792 0 : }
37793 0 : _save(i1, i6);
37794 0 : i5 = i5 + 1 | 0;
37795 0 : } while ((i5 | 0) < (i3 | 0));
37796 0 : }
37797 0 : } while (0);
37798 0 : _lexerror(i1, i2, 289);
37799 1 : }
37800 1 : function _pushglobalfuncname(i1, i4) {
37801 0 : i1 = i1 | 0;
37802 0 : i4 = i4 | 0;
37803 0 : var i2 = 0, i3 = 0;
37804 0 : i2 = STACKTOP;
37805 0 : i3 = _lua_gettop(i1) | 0;
37806 0 : _lua_getinfo(i1, 1768, i4) | 0;
37807 0 : _lua_rawgeti(i1, -1001e3, 2);
37808 0 : i4 = i3 + 1 | 0;
37809 0 : if ((_findfield(i1, i4, 2) | 0) == 0) {
37810 0 : _lua_settop(i1, i3);
37811 0 : i4 = 0;
37812 0 : STACKTOP = i2;
37813 0 : return i4 | 0;
37814 0 : } else {
37815 0 : _lua_copy(i1, -1, i4);
37816 0 : _lua_settop(i1, -3);
37817 0 : i4 = 1;
37818 0 : STACKTOP = i2;
37819 0 : return i4 | 0;
37820 0 : }
37821 0 : return 0;
37822 1 : }
37823 1 : function copyTempDouble(i1) {
37824 0 : i1 = i1 | 0;
37825 0 : HEAP8[tempDoublePtr] = HEAP8[i1];
37826 0 : HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
37827 0 : HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
37828 0 : HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
37829 0 : HEAP8[tempDoublePtr + 4 | 0] = HEAP8[i1 + 4 | 0];
37830 0 : HEAP8[tempDoublePtr + 5 | 0] = HEAP8[i1 + 5 | 0];
37831 0 : HEAP8[tempDoublePtr + 6 | 0] = HEAP8[i1 + 6 | 0];
37832 0 : HEAP8[tempDoublePtr + 7 | 0] = HEAP8[i1 + 7 | 0];
37833 1 : }
37834 11 : function _lua_pushlstring(i1, i3, i4) {
37835 11 : i1 = i1 | 0;
37836 11 : i3 = i3 | 0;
37837 11 : i4 = i4 | 0;
37838 11 : var i2 = 0;
37839 11 : i2 = STACKTOP;
37840 11 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
37841 11 : _luaC_step(i1);
37842 11 : }
37843 11 : i4 = _luaS_newlstr(i1, i3, i4) | 0;
37844 11 : i3 = i1 + 8 | 0;
37845 11 : i1 = HEAP32[i3 >> 2] | 0;
37846 11 : HEAP32[i1 >> 2] = i4;
37847 11 : HEAP32[i1 + 8 >> 2] = HEAPU8[i4 + 4 | 0] | 0 | 64;
37848 11 : HEAP32[i3 >> 2] = (HEAP32[i3 >> 2] | 0) + 16;
37849 11 : STACKTOP = i2;
37850 11 : return i4 + 16 | 0;
37851 11 : }
37852 1 : function _ll_searchpath(i1) {
37853 0 : i1 = i1 | 0;
37854 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37855 0 : i2 = STACKTOP;
37856 0 : i5 = _luaL_checklstring(i1, 1, 0) | 0;
37857 0 : i4 = _luaL_checklstring(i1, 2, 0) | 0;
37858 0 : i3 = _luaL_optlstring(i1, 3, 4936, 0) | 0;
37859 0 : if ((_searchpath(i1, i5, i4, i3, _luaL_optlstring(i1, 4, 4848, 0) | 0) | 0) != 0) {
37860 0 : i5 = 1;
37861 0 : STACKTOP = i2;
37862 0 : return i5 | 0;
37863 0 : }
37864 0 : _lua_pushnil(i1);
37865 0 : _lua_insert(i1, -2);
37866 0 : i5 = 2;
37867 0 : STACKTOP = i2;
37868 0 : return i5 | 0;
37869 1 : }
37870 1 : function _math_log(i1) {
37871 0 : i1 = i1 | 0;
37872 0 : var i2 = 0, d3 = 0.0, d4 = 0.0;
37873 0 : i2 = STACKTOP;
37874 0 : d3 = +_luaL_checknumber(i1, 1);
37875 0 : do {
37876 0 : if ((_lua_type(i1, 2) | 0) >= 1) {
37877 0 : d4 = +_luaL_checknumber(i1, 2);
37878 0 : if (d4 == 10.0) {
37879 0 : d3 = +_log10(+d3);
37880 0 : break;
37881 0 : } else {
37882 0 : d3 = +Math_log(+d3) / +Math_log(+d4);
37883 0 : break;
37884 0 : }
37885 0 : } else {
37886 0 : d3 = +Math_log(+d3);
37887 0 : }
37888 0 : } while (0);
37889 0 : _lua_pushnumber(i1, d3);
37890 0 : STACKTOP = i2;
37891 0 : return 1;
37892 1 : }
37893 1 : function _luaT_init(i1) {
37894 1 : i1 = i1 | 0;
37895 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
37896 1 : i2 = STACKTOP;
37897 1 : i3 = i1 + 12 | 0;
37898 1 : i4 = 0;
37899 1 : do {
37900 1 : i5 = _luaS_new(i1, HEAP32[8576 + (i4 << 2) >> 2] | 0) | 0;
37901 1 : HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] = i5;
37902 1 : i5 = (HEAP32[(HEAP32[i3 >> 2] | 0) + (i4 << 2) + 184 >> 2] | 0) + 5 | 0;
37903 1 : HEAP8[i5] = HEAPU8[i5] | 0 | 32;
37904 1 : i4 = i4 + 1 | 0;
37905 1 : } while ((i4 | 0) != 17);
37906 1 : STACKTOP = i2;
37907 1 : return;
37908 1 : }
37909 3 : function _f_gc(i1) {
37910 3 : i1 = i1 | 0;
37911 3 : var i2 = 0, i3 = 0, i4 = 0;
37912 3 : i2 = STACKTOP;
37913 3 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
37914 3 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
37915 3 : STACKTOP = i2;
37916 3 : return 0;
37917 3 : }
37918 3 : if ((HEAP32[i3 >> 2] | 0) == 0) {
37919 3 : STACKTOP = i2;
37920 3 : return 0;
37921 3 : }
37922 3 : i4 = (_luaL_checkudata(i1, 1, 2832) | 0) + 4 | 0;
37923 3 : i3 = HEAP32[i4 >> 2] | 0;
37924 3 : HEAP32[i4 >> 2] = 0;
37925 3 : FUNCTION_TABLE_ii[i3 & 255](i1) | 0;
37926 3 : STACKTOP = i2;
37927 3 : return 0;
37928 3 : }
37929 35 : function ___shlim(i1, i5) {
37930 35 : i1 = i1 | 0;
37931 35 : i5 = i5 | 0;
37932 35 : var i2 = 0, i3 = 0, i4 = 0, i6 = 0;
37933 35 : i2 = STACKTOP;
37934 35 : HEAP32[i1 + 104 >> 2] = i5;
37935 35 : i4 = HEAP32[i1 + 8 >> 2] | 0;
37936 35 : i3 = HEAP32[i1 + 4 >> 2] | 0;
37937 35 : i6 = i4 - i3 | 0;
37938 35 : HEAP32[i1 + 108 >> 2] = i6;
37939 35 : if ((i5 | 0) != 0 & (i6 | 0) > (i5 | 0)) {
37940 35 : HEAP32[i1 + 100 >> 2] = i3 + i5;
37941 35 : STACKTOP = i2;
37942 35 : return;
37943 35 : } else {
37944 35 : HEAP32[i1 + 100 >> 2] = i4;
37945 35 : STACKTOP = i2;
37946 35 : return;
37947 35 : }
37948 35 : }
37949 1 : function _lua_sethook(i4, i6, i1, i5) {
37950 0 : i4 = i4 | 0;
37951 0 : i6 = i6 | 0;
37952 0 : i1 = i1 | 0;
37953 0 : i5 = i5 | 0;
37954 0 : var i2 = 0, i3 = 0;
37955 0 : i2 = (i6 | 0) == 0 | (i1 | 0) == 0;
37956 0 : i3 = HEAP32[i4 + 16 >> 2] | 0;
37957 0 : if (!((HEAP8[i3 + 18 | 0] & 1) == 0)) {
37958 0 : HEAP32[i4 + 20 >> 2] = HEAP32[i3 + 28 >> 2];
37959 0 : }
37960 0 : HEAP32[i4 + 52 >> 2] = i2 ? 0 : i6;
37961 0 : HEAP32[i4 + 44 >> 2] = i5;
37962 0 : HEAP32[i4 + 48 >> 2] = i5;
37963 0 : HEAP8[i4 + 40 | 0] = i2 ? 0 : i1 & 255;
37964 0 : return 1;
37965 1 : }
37966 1 : function _io_tmpfile(i1) {
37967 0 : i1 = i1 | 0;
37968 0 : var i2 = 0, i3 = 0, i4 = 0;
37969 0 : i2 = STACKTOP;
37970 0 : i4 = _lua_newuserdata(i1, 8) | 0;
37971 0 : i3 = i4 + 4 | 0;
37972 0 : HEAP32[i3 >> 2] = 0;
37973 0 : _luaL_setmetatable(i1, 2832);
37974 0 : HEAP32[i4 >> 2] = 0;
37975 0 : HEAP32[i3 >> 2] = 156;
37976 0 : i3 = _tmpfile() | 0;
37977 0 : HEAP32[i4 >> 2] = i3;
37978 0 : if ((i3 | 0) != 0) {
37979 0 : i4 = 1;
37980 0 : STACKTOP = i2;
37981 0 : return i4 | 0;
37982 0 : }
37983 0 : i4 = _luaL_fileresult(i1, 0, 0) | 0;
37984 0 : STACKTOP = i2;
37985 0 : return i4 | 0;
37986 1 : }
37987 1 : function _luaL_checkstack(i1, i5, i4) {
37988 1 : i1 = i1 | 0;
37989 1 : i5 = i5 | 0;
37990 1 : i4 = i4 | 0;
37991 1 : var i2 = 0, i3 = 0;
37992 1 : i2 = STACKTOP;
37993 1 : STACKTOP = STACKTOP + 16 | 0;
37994 1 : i3 = i2;
37995 1 : if ((_lua_checkstack(i1, i5 + 20 | 0) | 0) != 0) {
37996 1 : STACKTOP = i2;
37997 1 : return;
37998 1 : }
37999 1 : if ((i4 | 0) == 0) {
38000 1 : _luaL_error(i1, 1240, i3) | 0;
38001 1 : STACKTOP = i2;
38002 1 : return;
38003 1 : } else {
38004 1 : HEAP32[i3 >> 2] = i4;
38005 1 : _luaL_error(i1, 1216, i3) | 0;
38006 1 : STACKTOP = i2;
38007 1 : return;
38008 1 : }
38009 1 : }
38010 1 : function _b_rshift(i1) {
38011 0 : i1 = i1 | 0;
38012 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
38013 0 : i2 = STACKTOP;
38014 0 : i4 = _luaL_checkunsigned(i1, 1) | 0;
38015 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
38016 0 : i5 = 0 - i3 | 0;
38017 0 : if ((i3 | 0) > 0) {
38018 0 : i5 = (i3 | 0) > 31 ? 0 : i4 >>> i3;
38019 0 : _lua_pushunsigned(i1, i5);
38020 0 : STACKTOP = i2;
38021 0 : return 1;
38022 0 : } else {
38023 0 : i5 = (i5 | 0) > 31 ? 0 : i4 << i5;
38024 0 : _lua_pushunsigned(i1, i5);
38025 0 : STACKTOP = i2;
38026 0 : return 1;
38027 0 : }
38028 0 : return 0;
38029 1 : }
38030 1 : function _b_lshift(i1) {
38031 0 : i1 = i1 | 0;
38032 0 : var i2 = 0, i3 = 0, i4 = 0;
38033 0 : i2 = STACKTOP;
38034 0 : i3 = _luaL_checkunsigned(i1, 1) | 0;
38035 0 : i4 = _luaL_checkinteger(i1, 2) | 0;
38036 0 : if ((i4 | 0) < 0) {
38037 0 : i4 = 0 - i4 | 0;
38038 0 : i4 = (i4 | 0) > 31 ? 0 : i3 >>> i4;
38039 0 : _lua_pushunsigned(i1, i4);
38040 0 : STACKTOP = i2;
38041 0 : return 1;
38042 0 : } else {
38043 0 : i4 = (i4 | 0) > 31 ? 0 : i3 << i4;
38044 0 : _lua_pushunsigned(i1, i4);
38045 0 : STACKTOP = i2;
38046 0 : return 1;
38047 0 : }
38048 0 : return 0;
38049 1 : }
38050 1 : function _math_min(i1) {
38051 0 : i1 = i1 | 0;
38052 0 : var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
38053 0 : i2 = STACKTOP;
38054 0 : i3 = _lua_gettop(i1) | 0;
38055 0 : d5 = +_luaL_checknumber(i1, 1);
38056 0 : if ((i3 | 0) >= 2) {
38057 0 : i4 = 2;
38058 0 : while (1) {
38059 0 : d6 = +_luaL_checknumber(i1, i4);
38060 0 : d5 = d6 < d5 ? d6 : d5;
38061 0 : if ((i4 | 0) == (i3 | 0)) {
38062 0 : break;
38063 0 : } else {
38064 0 : i4 = i4 + 1 | 0;
38065 0 : }
38066 0 : }
38067 0 : }
38068 0 : _lua_pushnumber(i1, d5);
38069 0 : STACKTOP = i2;
38070 0 : return 1;
38071 1 : }
38072 1 : function _math_max(i1) {
38073 0 : i1 = i1 | 0;
38074 0 : var i2 = 0, i3 = 0, i4 = 0, d5 = 0.0, d6 = 0.0;
38075 0 : i2 = STACKTOP;
38076 0 : i3 = _lua_gettop(i1) | 0;
38077 0 : d5 = +_luaL_checknumber(i1, 1);
38078 0 : if ((i3 | 0) >= 2) {
38079 0 : i4 = 2;
38080 0 : while (1) {
38081 0 : d6 = +_luaL_checknumber(i1, i4);
38082 0 : d5 = d6 > d5 ? d6 : d5;
38083 0 : if ((i4 | 0) == (i3 | 0)) {
38084 0 : break;
38085 0 : } else {
38086 0 : i4 = i4 + 1 | 0;
38087 0 : }
38088 0 : }
38089 0 : }
38090 0 : _lua_pushnumber(i1, d5);
38091 0 : STACKTOP = i2;
38092 0 : return 1;
38093 1 : }
38094 1 : function _io_type(i1) {
38095 0 : i1 = i1 | 0;
38096 0 : var i2 = 0, i3 = 0;
38097 0 : i2 = STACKTOP;
38098 0 : _luaL_checkany(i1, 1);
38099 0 : i3 = _luaL_testudata(i1, 1, 2832) | 0;
38100 0 : if ((i3 | 0) == 0) {
38101 0 : _lua_pushnil(i1);
38102 0 : STACKTOP = i2;
38103 0 : return 1;
38104 0 : }
38105 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38106 0 : _lua_pushlstring(i1, 3456, 11) | 0;
38107 0 : STACKTOP = i2;
38108 0 : return 1;
38109 0 : } else {
38110 0 : _lua_pushlstring(i1, 3472, 4) | 0;
38111 0 : STACKTOP = i2;
38112 0 : return 1;
38113 0 : }
38114 0 : return 0;
38115 1 : }
38116 3 : function _luaF_newLclosure(i3, i2) {
38117 3 : i3 = i3 | 0;
38118 3 : i2 = i2 | 0;
38119 3 : var i1 = 0, i4 = 0;
38120 3 : i1 = STACKTOP;
38121 3 : i3 = _luaC_newobj(i3, 6, (i2 << 2) + 16 | 0, 0, 0) | 0;
38122 3 : HEAP32[i3 + 12 >> 2] = 0;
38123 3 : HEAP8[i3 + 6 | 0] = i2;
38124 3 : if ((i2 | 0) == 0) {
38125 3 : STACKTOP = i1;
38126 3 : return i3 | 0;
38127 3 : }
38128 3 : i4 = i3 + 16 | 0;
38129 3 : do {
38130 3 : i2 = i2 + -1 | 0;
38131 3 : HEAP32[i4 + (i2 << 2) >> 2] = 0;
38132 3 : } while ((i2 | 0) != 0);
38133 3 : STACKTOP = i1;
38134 3 : return i3 | 0;
38135 3 : }
38136 1 : function _io_flush(i1) {
38137 0 : i1 = i1 | 0;
38138 0 : var i2 = 0, i3 = 0, i4 = 0;
38139 0 : i2 = STACKTOP;
38140 0 : STACKTOP = STACKTOP + 16 | 0;
38141 0 : i4 = i2;
38142 0 : _lua_getfield(i1, -1001e3, 2800);
38143 0 : i3 = _lua_touserdata(i1, -1) | 0;
38144 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38145 0 : HEAP32[i4 >> 2] = 2804;
38146 0 : _luaL_error(i1, 3424, i4) | 0;
38147 0 : }
38148 0 : i4 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
38149 0 : STACKTOP = i2;
38150 0 : return i4 | 0;
38151 1 : }
38152 1 : function _b_test(i1) {
38153 0 : i1 = i1 | 0;
38154 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
38155 0 : i2 = STACKTOP;
38156 0 : i3 = _lua_gettop(i1) | 0;
38157 0 : if ((i3 | 0) < 1) {
38158 0 : i3 = 1;
38159 0 : } else {
38160 0 : i4 = 1;
38161 0 : i5 = -1;
38162 0 : while (1) {
38163 0 : i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
38164 0 : if ((i4 | 0) == (i3 | 0)) {
38165 0 : break;
38166 0 : } else {
38167 0 : i4 = i4 + 1 | 0;
38168 0 : }
38169 0 : }
38170 0 : i3 = (i5 | 0) != 0;
38171 0 : }
38172 0 : _lua_pushboolean(i1, i3 & 1);
38173 0 : STACKTOP = i2;
38174 0 : return 1;
38175 1 : }
38176 1 : function ___muldsi3(i2, i1) {
38177 0 : i2 = i2 | 0;
38178 0 : i1 = i1 | 0;
38179 0 : var i3 = 0, i4 = 0, i5 = 0, i6 = 0;
38180 0 : i6 = i2 & 65535;
38181 0 : i4 = i1 & 65535;
38182 0 : i3 = Math_imul(i4, i6) | 0;
38183 0 : i5 = i2 >>> 16;
38184 0 : i4 = (i3 >>> 16) + (Math_imul(i4, i5) | 0) | 0;
38185 0 : i1 = i1 >>> 16;
38186 0 : i2 = Math_imul(i1, i6) | 0;
38187 0 : return (tempRet0 = (i4 >>> 16) + (Math_imul(i1, i5) | 0) + (((i4 & 65535) + i2 | 0) >>> 16) | 0, i4 + i2 << 16 | i3 & 65535 | 0) | 0;
38188 1 : }
38189 1 : function _str_dump(i1) {
38190 0 : i1 = i1 | 0;
38191 0 : var i2 = 0, i3 = 0;
38192 0 : i2 = STACKTOP;
38193 0 : STACKTOP = STACKTOP + 1056 | 0;
38194 0 : i3 = i2 + 8 | 0;
38195 0 : _luaL_checktype(i1, 1, 6);
38196 0 : _lua_settop(i1, 1);
38197 0 : _luaL_buffinit(i1, i3);
38198 0 : if ((_lua_dump(i1, 2, i3) | 0) == 0) {
38199 0 : _luaL_pushresult(i3);
38200 0 : i3 = 1;
38201 0 : STACKTOP = i2;
38202 0 : return i3 | 0;
38203 0 : } else {
38204 0 : i3 = _luaL_error(i1, 7888, i2) | 0;
38205 0 : STACKTOP = i2;
38206 0 : return i3 | 0;
38207 0 : }
38208 0 : return 0;
38209 1 : }
38210 1 : function ___memrchr(i2, i3, i5) {
38211 0 : i2 = i2 | 0;
38212 0 : i3 = i3 | 0;
38213 0 : i5 = i5 | 0;
38214 0 : var i1 = 0, i4 = 0;
38215 0 : i1 = STACKTOP;
38216 0 : i3 = i3 & 255;
38217 0 : while (1) {
38218 0 : i4 = i5 + -1 | 0;
38219 0 : if ((i5 | 0) == 0) {
38220 0 : i5 = 0;
38221 0 : i2 = 4;
38222 0 : break;
38223 0 : }
38224 0 : i5 = i2 + i4 | 0;
38225 0 : if ((HEAP8[i5] | 0) == i3 << 24 >> 24) {
38226 0 : i2 = 4;
38227 0 : break;
38228 0 : } else {
38229 0 : i5 = i4;
38230 0 : }
38231 0 : }
38232 0 : if ((i2 | 0) == 4) {
38233 0 : STACKTOP = i1;
38234 0 : return i5 | 0;
38235 0 : }
38236 0 : return 0;
38237 1 : }
38238 14 : function _luaL_getsubtable(i1, i3, i4) {
38239 14 : i1 = i1 | 0;
38240 14 : i3 = i3 | 0;
38241 14 : i4 = i4 | 0;
38242 14 : var i2 = 0;
38243 14 : i2 = STACKTOP;
38244 14 : _lua_getfield(i1, i3, i4);
38245 14 : if ((_lua_type(i1, -1) | 0) == 5) {
38246 14 : i4 = 1;
38247 14 : STACKTOP = i2;
38248 14 : return i4 | 0;
38249 14 : }
38250 14 : _lua_settop(i1, -2);
38251 14 : i3 = _lua_absindex(i1, i3) | 0;
38252 14 : _lua_createtable(i1, 0, 0);
38253 14 : _lua_pushvalue(i1, -1);
38254 14 : _lua_setfield(i1, i3, i4);
38255 14 : i4 = 0;
38256 14 : STACKTOP = i2;
38257 14 : return i4 | 0;
38258 14 : }
38259 22 : function _luaE_freeCI(i1) {
38260 22 : i1 = i1 | 0;
38261 22 : var i2 = 0, i3 = 0, i4 = 0;
38262 22 : i2 = STACKTOP;
38263 22 : i4 = (HEAP32[i1 + 16 >> 2] | 0) + 12 | 0;
38264 22 : i3 = HEAP32[i4 >> 2] | 0;
38265 22 : HEAP32[i4 >> 2] = 0;
38266 22 : if ((i3 | 0) == 0) {
38267 22 : STACKTOP = i2;
38268 22 : return;
38269 22 : }
38270 22 : while (1) {
38271 22 : i4 = HEAP32[i3 + 12 >> 2] | 0;
38272 22 : _luaM_realloc_(i1, i3, 40, 0) | 0;
38273 22 : if ((i4 | 0) == 0) {
38274 22 : break;
38275 22 : } else {
38276 22 : i3 = i4;
38277 22 : }
38278 22 : }
38279 22 : STACKTOP = i2;
38280 22 : return;
38281 22 : }
38282 1 : function _f_tostring(i1) {
38283 0 : i1 = i1 | 0;
38284 0 : var i2 = 0, i3 = 0, i4 = 0;
38285 0 : i2 = STACKTOP;
38286 0 : STACKTOP = STACKTOP + 16 | 0;
38287 0 : i3 = i2;
38288 0 : i4 = _luaL_checkudata(i1, 1, 2832) | 0;
38289 0 : if ((HEAP32[i4 + 4 >> 2] | 0) == 0) {
38290 0 : _lua_pushlstring(i1, 3040, 13) | 0;
38291 0 : STACKTOP = i2;
38292 0 : return 1;
38293 0 : } else {
38294 0 : HEAP32[i3 >> 2] = HEAP32[i4 >> 2];
38295 0 : _lua_pushfstring(i1, 3056, i3) | 0;
38296 0 : STACKTOP = i2;
38297 0 : return 1;
38298 0 : }
38299 0 : return 0;
38300 1 : }
38301 3 : function _lua_newuserdata(i1, i3) {
38302 3 : i1 = i1 | 0;
38303 3 : i3 = i3 | 0;
38304 3 : var i2 = 0, i4 = 0;
38305 3 : i2 = STACKTOP;
38306 3 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
38307 3 : _luaC_step(i1);
38308 3 : }
38309 3 : i3 = _luaS_newudata(i1, i3, 0) | 0;
38310 3 : i1 = i1 + 8 | 0;
38311 3 : i4 = HEAP32[i1 >> 2] | 0;
38312 3 : HEAP32[i4 >> 2] = i3;
38313 3 : HEAP32[i4 + 8 >> 2] = 71;
38314 3 : HEAP32[i1 >> 2] = (HEAP32[i1 >> 2] | 0) + 16;
38315 3 : STACKTOP = i2;
38316 3 : return i3 + 24 | 0;
38317 3 : }
38318 1 : function _luaL_pushresultsize(i1, i3) {
38319 0 : i1 = i1 | 0;
38320 0 : i3 = i3 | 0;
38321 0 : var i2 = 0, i4 = 0, i5 = 0;
38322 0 : i2 = STACKTOP;
38323 0 : i5 = i1 + 8 | 0;
38324 0 : i4 = (HEAP32[i5 >> 2] | 0) + i3 | 0;
38325 0 : HEAP32[i5 >> 2] = i4;
38326 0 : i3 = HEAP32[i1 + 12 >> 2] | 0;
38327 0 : _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, i4) | 0;
38328 0 : if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
38329 0 : STACKTOP = i2;
38330 0 : return;
38331 0 : }
38332 0 : _lua_remove(i3, -2);
38333 0 : STACKTOP = i2;
38334 0 : return;
38335 1 : }
38336 1 : function _luaL_testudata(i2, i5, i4) {
38337 0 : i2 = i2 | 0;
38338 0 : i5 = i5 | 0;
38339 0 : i4 = i4 | 0;
38340 0 : var i1 = 0, i3 = 0;
38341 0 : i1 = STACKTOP;
38342 0 : i3 = _lua_touserdata(i2, i5) | 0;
38343 0 : if ((i3 | 0) != 0 ? (_lua_getmetatable(i2, i5) | 0) != 0 : 0) {
38344 0 : _lua_getfield(i2, -1001e3, i4);
38345 0 : i5 = (_lua_rawequal(i2, -1, -2) | 0) == 0;
38346 0 : _lua_settop(i2, -3);
38347 0 : i2 = i5 ? 0 : i3;
38348 0 : } else {
38349 0 : i2 = 0;
38350 0 : }
38351 0 : STACKTOP = i1;
38352 0 : return i2 | 0;
38353 1 : }
38354 1 : function _finishpcall(i1, i3) {
38355 0 : i1 = i1 | 0;
38356 0 : i3 = i3 | 0;
38357 0 : var i2 = 0;
38358 0 : i2 = STACKTOP;
38359 0 : if ((_lua_checkstack(i1, 1) | 0) == 0) {
38360 0 : _lua_settop(i1, 0);
38361 0 : _lua_pushboolean(i1, 0);
38362 0 : _lua_pushstring(i1, 9632) | 0;
38363 0 : i3 = 2;
38364 0 : STACKTOP = i2;
38365 0 : return i3 | 0;
38366 0 : } else {
38367 0 : _lua_pushboolean(i1, i3);
38368 0 : _lua_replace(i1, 1);
38369 0 : i3 = _lua_gettop(i1) | 0;
38370 0 : STACKTOP = i2;
38371 0 : return i3 | 0;
38372 0 : }
38373 0 : return 0;
38374 1 : }
38375 1 : function _searcher_preload(i1) {
38376 0 : i1 = i1 | 0;
38377 0 : var i2 = 0, i3 = 0, i4 = 0;
38378 0 : i2 = STACKTOP;
38379 0 : STACKTOP = STACKTOP + 16 | 0;
38380 0 : i4 = i2;
38381 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
38382 0 : _lua_getfield(i1, -1001e3, 4592);
38383 0 : _lua_getfield(i1, -1, i3);
38384 0 : if ((_lua_type(i1, -1) | 0) != 0) {
38385 0 : STACKTOP = i2;
38386 0 : return 1;
38387 0 : }
38388 0 : HEAP32[i4 >> 2] = i3;
38389 0 : _lua_pushfstring(i1, 5096, i4) | 0;
38390 0 : STACKTOP = i2;
38391 0 : return 1;
38392 1 : }
38393 1 : function _luaB_auxwrap(i1) {
38394 0 : i1 = i1 | 0;
38395 0 : var i2 = 0, i3 = 0;
38396 0 : i3 = STACKTOP;
38397 0 : i2 = _lua_tothread(i1, -1001001) | 0;
38398 0 : i2 = _auxresume(i1, i2, _lua_gettop(i1) | 0) | 0;
38399 0 : if ((i2 | 0) >= 0) {
38400 0 : STACKTOP = i3;
38401 0 : return i2 | 0;
38402 0 : }
38403 0 : if ((_lua_isstring(i1, -1) | 0) == 0) {
38404 0 : _lua_error(i1) | 0;
38405 0 : }
38406 0 : _luaL_where(i1, 1);
38407 0 : _lua_insert(i1, -2);
38408 0 : _lua_concat(i1, 2);
38409 0 : _lua_error(i1) | 0;
38410 0 : return 0;
38411 1 : }
38412 1 : function _ll_loadlib(i1) {
38413 0 : i1 = i1 | 0;
38414 0 : var i2 = 0, i3 = 0;
38415 0 : i2 = STACKTOP;
38416 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
38417 0 : i3 = _ll_loadfunc(i1, i3, _luaL_checklstring(i1, 2, 0) | 0) | 0;
38418 0 : if ((i3 | 0) == 0) {
38419 0 : i3 = 1;
38420 0 : STACKTOP = i2;
38421 0 : return i3 | 0;
38422 0 : }
38423 0 : _lua_pushnil(i1);
38424 0 : _lua_insert(i1, -2);
38425 0 : _lua_pushstring(i1, (i3 | 0) == 1 ? 5176 : 5184) | 0;
38426 0 : i3 = 3;
38427 0 : STACKTOP = i2;
38428 0 : return i3 | 0;
38429 1 : }
38430 1 : function _luaS_hash(i2, i4, i3) {
38431 1 : i2 = i2 | 0;
38432 1 : i4 = i4 | 0;
38433 1 : i3 = i3 | 0;
38434 1 : var i1 = 0, i5 = 0;
38435 1 : i1 = STACKTOP;
38436 1 : i5 = i3 ^ i4;
38437 1 : i3 = (i4 >>> 5) + 1 | 0;
38438 1 : if (i3 >>> 0 > i4 >>> 0) {
38439 1 : STACKTOP = i1;
38440 1 : return i5 | 0;
38441 1 : }
38442 1 : do {
38443 1 : i5 = (i5 << 5) + (i5 >>> 2) + (HEAPU8[i2 + (i4 + -1) | 0] | 0) ^ i5;
38444 1 : i4 = i4 - i3 | 0;
38445 1 : } while (!(i4 >>> 0 < i3 >>> 0));
38446 1 : STACKTOP = i1;
38447 1 : return i5 | 0;
38448 1 : }
38449 1 : function _b_and(i1) {
38450 0 : i1 = i1 | 0;
38451 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
38452 0 : i2 = STACKTOP;
38453 0 : i3 = _lua_gettop(i1) | 0;
38454 0 : if ((i3 | 0) < 1) {
38455 0 : i5 = -1;
38456 0 : } else {
38457 0 : i4 = 1;
38458 0 : i5 = -1;
38459 0 : while (1) {
38460 0 : i5 = (_luaL_checkunsigned(i1, i4) | 0) & i5;
38461 0 : if ((i4 | 0) == (i3 | 0)) {
38462 0 : break;
38463 0 : } else {
38464 0 : i4 = i4 + 1 | 0;
38465 0 : }
38466 0 : }
38467 0 : }
38468 0 : _lua_pushunsigned(i1, i5);
38469 0 : STACKTOP = i2;
38470 0 : return 1;
38471 1 : }
38472 1 : function _luaopen_string(i1) {
38473 1 : i1 = i1 | 0;
38474 1 : var i2 = 0;
38475 1 : i2 = STACKTOP;
38476 1 : _lua_createtable(i1, 0, 14);
38477 1 : _luaL_setfuncs(i1, 6920, 0);
38478 1 : _lua_createtable(i1, 0, 1);
38479 1 : _lua_pushlstring(i1, 7040, 0) | 0;
38480 1 : _lua_pushvalue(i1, -2);
38481 1 : _lua_setmetatable(i1, -2) | 0;
38482 1 : _lua_settop(i1, -2);
38483 1 : _lua_pushvalue(i1, -2);
38484 1 : _lua_setfield(i1, -2, 7048);
38485 1 : _lua_settop(i1, -2);
38486 1 : STACKTOP = i2;
38487 1 : return 1;
38488 1 : }
38489 1 : function _b_xor(i1) {
38490 0 : i1 = i1 | 0;
38491 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
38492 0 : i2 = STACKTOP;
38493 0 : i3 = _lua_gettop(i1) | 0;
38494 0 : if ((i3 | 0) < 1) {
38495 0 : i5 = 0;
38496 0 : } else {
38497 0 : i4 = 1;
38498 0 : i5 = 0;
38499 0 : while (1) {
38500 0 : i5 = (_luaL_checkunsigned(i1, i4) | 0) ^ i5;
38501 0 : if ((i4 | 0) == (i3 | 0)) {
38502 0 : break;
38503 0 : } else {
38504 0 : i4 = i4 + 1 | 0;
38505 0 : }
38506 0 : }
38507 0 : }
38508 0 : _lua_pushunsigned(i1, i5);
38509 0 : STACKTOP = i2;
38510 0 : return 1;
38511 1 : }
38512 1 : function _luaB_assert(i1) {
38513 0 : i1 = i1 | 0;
38514 0 : var i2 = 0, i3 = 0;
38515 0 : i2 = STACKTOP;
38516 0 : STACKTOP = STACKTOP + 16 | 0;
38517 0 : i3 = i2;
38518 0 : if ((_lua_toboolean(i1, 1) | 0) == 0) {
38519 0 : HEAP32[i3 >> 2] = _luaL_optlstring(i1, 2, 10216, 0) | 0;
38520 0 : i3 = _luaL_error(i1, 10208, i3) | 0;
38521 0 : STACKTOP = i2;
38522 0 : return i3 | 0;
38523 0 : } else {
38524 0 : i3 = _lua_gettop(i1) | 0;
38525 0 : STACKTOP = i2;
38526 0 : return i3 | 0;
38527 0 : }
38528 0 : return 0;
38529 1 : }
38530 1 : function _b_or(i1) {
38531 0 : i1 = i1 | 0;
38532 0 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
38533 0 : i2 = STACKTOP;
38534 0 : i3 = _lua_gettop(i1) | 0;
38535 0 : if ((i3 | 0) < 1) {
38536 0 : i5 = 0;
38537 0 : } else {
38538 0 : i4 = 1;
38539 0 : i5 = 0;
38540 0 : while (1) {
38541 0 : i5 = _luaL_checkunsigned(i1, i4) | 0 | i5;
38542 0 : if ((i4 | 0) == (i3 | 0)) {
38543 0 : break;
38544 0 : } else {
38545 0 : i4 = i4 + 1 | 0;
38546 0 : }
38547 0 : }
38548 0 : }
38549 0 : _lua_pushunsigned(i1, i5);
38550 0 : STACKTOP = i2;
38551 0 : return 1;
38552 1 : }
38553 5 : function _io_write(i1) {
38554 5 : i1 = i1 | 0;
38555 5 : var i2 = 0, i3 = 0, i4 = 0;
38556 5 : i2 = STACKTOP;
38557 5 : STACKTOP = STACKTOP + 16 | 0;
38558 5 : i4 = i2;
38559 5 : _lua_getfield(i1, -1001e3, 2800);
38560 5 : i3 = _lua_touserdata(i1, -1) | 0;
38561 5 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38562 5 : HEAP32[i4 >> 2] = 2804;
38563 5 : _luaL_error(i1, 3424, i4) | 0;
38564 5 : }
38565 5 : i4 = _g_write(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
38566 5 : STACKTOP = i2;
38567 5 : return i4 | 0;
38568 5 : }
38569 1 : function _luaK_checkstack(i1, i3) {
38570 0 : i1 = i1 | 0;
38571 0 : i3 = i3 | 0;
38572 0 : var i2 = 0, i4 = 0;
38573 0 : i2 = STACKTOP;
38574 0 : i3 = (HEAPU8[i1 + 48 | 0] | 0) + i3 | 0;
38575 0 : i4 = (HEAP32[i1 >> 2] | 0) + 78 | 0;
38576 0 : if ((i3 | 0) <= (HEAPU8[i4] | 0 | 0)) {
38577 0 : STACKTOP = i2;
38578 0 : return;
38579 0 : }
38580 0 : if ((i3 | 0) > 249) {
38581 0 : _luaX_syntaxerror(HEAP32[i1 + 12 >> 2] | 0, 10536);
38582 0 : }
38583 0 : HEAP8[i4] = i3;
38584 0 : STACKTOP = i2;
38585 0 : return;
38586 1 : }
38587 1 : function _io_read(i1) {
38588 0 : i1 = i1 | 0;
38589 0 : var i2 = 0, i3 = 0, i4 = 0;
38590 0 : i2 = STACKTOP;
38591 0 : STACKTOP = STACKTOP + 16 | 0;
38592 0 : i4 = i2;
38593 0 : _lua_getfield(i1, -1001e3, 2776);
38594 0 : i3 = _lua_touserdata(i1, -1) | 0;
38595 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38596 0 : HEAP32[i4 >> 2] = 2780;
38597 0 : _luaL_error(i1, 3424, i4) | 0;
38598 0 : }
38599 0 : i4 = _g_read(i1, HEAP32[i3 >> 2] | 0, 1) | 0;
38600 0 : STACKTOP = i2;
38601 0 : return i4 | 0;
38602 1 : }
38603 1 : function _db_setupvalue(i1) {
38604 0 : i1 = i1 | 0;
38605 0 : var i2 = 0, i3 = 0;
38606 0 : i2 = STACKTOP;
38607 0 : _luaL_checkany(i1, 3);
38608 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
38609 0 : _luaL_checktype(i1, 1, 6);
38610 0 : i3 = _lua_setupvalue(i1, 1, i3) | 0;
38611 0 : if ((i3 | 0) == 0) {
38612 0 : i3 = 0;
38613 0 : STACKTOP = i2;
38614 0 : return i3 | 0;
38615 0 : }
38616 0 : _lua_pushstring(i1, i3) | 0;
38617 0 : _lua_insert(i1, -1);
38618 0 : i3 = 1;
38619 0 : STACKTOP = i2;
38620 0 : return i3 | 0;
38621 1 : }
38622 1 : function ___uflow(i2) {
38623 0 : i2 = i2 | 0;
38624 0 : var i1 = 0, i3 = 0;
38625 0 : i1 = STACKTOP;
38626 0 : STACKTOP = STACKTOP + 16 | 0;
38627 0 : i3 = i1;
38628 0 : if ((HEAP32[i2 + 8 >> 2] | 0) == 0 ? (___toread(i2) | 0) != 0 : 0) {
38629 0 : i2 = -1;
38630 0 : } else {
38631 0 : if ((FUNCTION_TABLE_iiii[HEAP32[i2 + 32 >> 2] & 3](i2, i3, 1) | 0) == 1) {
38632 0 : i2 = HEAPU8[i3] | 0;
38633 0 : } else {
38634 0 : i2 = -1;
38635 0 : }
38636 0 : }
38637 0 : STACKTOP = i1;
38638 0 : return i2 | 0;
38639 1 : }
38640 1 : function _llvm_cttz_i32(i1) {
38641 0 : i1 = i1 | 0;
38642 0 : var i2 = 0;
38643 0 : i2 = HEAP8[cttz_i8 + (i1 & 255) | 0] | 0;
38644 0 : if ((i2 | 0) < 8) return i2 | 0;
38645 0 : i2 = HEAP8[cttz_i8 + (i1 >> 8 & 255) | 0] | 0;
38646 0 : if ((i2 | 0) < 8) return i2 + 8 | 0;
38647 0 : i2 = HEAP8[cttz_i8 + (i1 >> 16 & 255) | 0] | 0;
38648 0 : if ((i2 | 0) < 8) return i2 + 16 | 0;
38649 0 : return (HEAP8[cttz_i8 + (i1 >>> 24) | 0] | 0) + 24 | 0;
38650 1 : }
38651 80 : function _llvm_ctlz_i32(i1) {
38652 80 : i1 = i1 | 0;
38653 80 : var i2 = 0;
38654 80 : i2 = HEAP8[ctlz_i8 + (i1 >>> 24) | 0] | 0;
38655 80 : if ((i2 | 0) < 8) return i2 | 0;
38656 80 : i2 = HEAP8[ctlz_i8 + (i1 >> 16 & 255) | 0] | 0;
38657 80 : if ((i2 | 0) < 8) return i2 + 8 | 0;
38658 80 : i2 = HEAP8[ctlz_i8 + (i1 >> 8 & 255) | 0] | 0;
38659 80 : if ((i2 | 0) < 8) return i2 + 16 | 0;
38660 80 : return (HEAP8[ctlz_i8 + (i1 & 255) | 0] | 0) + 24 | 0;
38661 80 : }
38662 65 : function _luaO_ceillog2(i2) {
38663 65 : i2 = i2 | 0;
38664 65 : var i1 = 0, i3 = 0, i4 = 0;
38665 65 : i1 = STACKTOP;
38666 65 : i2 = i2 + -1 | 0;
38667 65 : if (i2 >>> 0 > 255) {
38668 65 : i3 = 0;
38669 65 : while (1) {
38670 65 : i3 = i3 + 8 | 0;
38671 65 : i4 = i2 >>> 8;
38672 65 : if (i2 >>> 0 > 65535) {
38673 65 : i2 = i4;
38674 65 : } else {
38675 65 : i2 = i4;
38676 65 : break;
38677 65 : }
38678 65 : }
38679 65 : } else {
38680 65 : i3 = 0;
38681 65 : }
38682 65 : STACKTOP = i1;
38683 65 : return (HEAPU8[5208 + i2 | 0] | 0) + i3 | 0;
38684 65 : }
38685 1 : function _os_exit(i1) {
38686 0 : i1 = i1 | 0;
38687 0 : var i2 = 0, i3 = 0;
38688 0 : i2 = STACKTOP;
38689 0 : if ((_lua_type(i1, 1) | 0) == 1) {
38690 0 : i3 = (_lua_toboolean(i1, 1) | 0) == 0 | 0;
38691 0 : } else {
38692 0 : i3 = _luaL_optinteger(i1, 1, 0) | 0;
38693 0 : }
38694 0 : if ((_lua_toboolean(i1, 2) | 0) != 0) {
38695 0 : _lua_close(i1);
38696 0 : }
38697 0 : if ((i1 | 0) == 0) {
38698 0 : STACKTOP = i2;
38699 0 : return 0;
38700 0 : } else {
38701 0 : _exit(i3 | 0);
38702 0 : }
38703 0 : return 0;
38704 1 : }
38705 1 : function _luaL_newmetatable(i1, i3) {
38706 1 : i1 = i1 | 0;
38707 1 : i3 = i3 | 0;
38708 1 : var i2 = 0;
38709 1 : i2 = STACKTOP;
38710 1 : _lua_getfield(i1, -1001e3, i3);
38711 1 : if ((_lua_type(i1, -1) | 0) != 0) {
38712 1 : i3 = 0;
38713 1 : STACKTOP = i2;
38714 1 : return i3 | 0;
38715 1 : }
38716 1 : _lua_settop(i1, -2);
38717 1 : _lua_createtable(i1, 0, 0);
38718 1 : _lua_pushvalue(i1, -1);
38719 1 : _lua_setfield(i1, -1001e3, i3);
38720 1 : i3 = 1;
38721 1 : STACKTOP = i2;
38722 1 : return i3 | 0;
38723 1 : }
38724 143016 : function _luaH_free(i1, i4) {
38725 143016 : i1 = i1 | 0;
38726 143016 : i4 = i4 | 0;
38727 143016 : var i2 = 0, i3 = 0;
38728 143016 : i2 = STACKTOP;
38729 143016 : i3 = HEAP32[i4 + 16 >> 2] | 0;
38730 143016 : if ((i3 | 0) != 8016) {
38731 143016 : _luaM_realloc_(i1, i3, 32 << (HEAPU8[i4 + 7 | 0] | 0), 0) | 0;
38732 143016 : }
38733 143016 : _luaM_realloc_(i1, HEAP32[i4 + 12 >> 2] | 0, HEAP32[i4 + 28 >> 2] << 4, 0) | 0;
38734 143016 : _luaM_realloc_(i1, i4, 32, 0) | 0;
38735 143016 : STACKTOP = i2;
38736 143016 : return;
38737 143016 : }
38738 4 : function _luaO_int2fb(i3) {
38739 4 : i3 = i3 | 0;
38740 4 : var i1 = 0, i2 = 0, i4 = 0;
38741 4 : i1 = STACKTOP;
38742 4 : if (i3 >>> 0 < 8) {
38743 4 : STACKTOP = i1;
38744 4 : return i3 | 0;
38745 4 : }
38746 4 : if (i3 >>> 0 > 15) {
38747 4 : i2 = 1;
38748 4 : do {
38749 4 : i4 = i3 + 1 | 0;
38750 4 : i3 = i4 >>> 1;
38751 4 : i2 = i2 + 1 | 0;
38752 4 : } while (i4 >>> 0 > 31);
38753 4 : i2 = i2 << 3;
38754 4 : } else {
38755 4 : i2 = 8;
38756 4 : }
38757 4 : i4 = i2 | i3 + -8;
38758 4 : STACKTOP = i1;
38759 4 : return i4 | 0;
38760 4 : }
38761 1 : function _luaK_codek(i3, i4, i1) {
38762 1 : i3 = i3 | 0;
38763 1 : i4 = i4 | 0;
38764 1 : i1 = i1 | 0;
38765 1 : var i2 = 0;
38766 1 : i2 = STACKTOP;
38767 1 : i4 = i4 << 6;
38768 1 : if ((i1 | 0) < 262144) {
38769 1 : i4 = _luaK_code(i3, i4 | i1 << 14 | 1) | 0;
38770 1 : STACKTOP = i2;
38771 1 : return i4 | 0;
38772 1 : } else {
38773 1 : i4 = _luaK_code(i3, i4 | 2) | 0;
38774 1 : _luaK_code(i3, i1 << 6 | 39) | 0;
38775 1 : STACKTOP = i2;
38776 1 : return i4 | 0;
38777 1 : }
38778 1 : return 0;
38779 1 : }
38780 1 : function _luaB_xpcall(i1) {
38781 0 : i1 = i1 | 0;
38782 0 : var i2 = 0, i3 = 0;
38783 0 : i2 = STACKTOP;
38784 0 : i3 = _lua_gettop(i1) | 0;
38785 0 : if ((i3 | 0) <= 1) {
38786 0 : _luaL_argerror(i1, 2, 9616) | 0;
38787 0 : }
38788 0 : _lua_pushvalue(i1, 1);
38789 0 : _lua_copy(i1, 2, 1);
38790 0 : _lua_replace(i1, 2);
38791 0 : i3 = _finishpcall(i1, (_lua_pcallk(i1, i3 + -2 | 0, -1, 1, 0, 166) | 0) == 0 | 0) | 0;
38792 0 : STACKTOP = i2;
38793 0 : return i3 | 0;
38794 1 : }
38795 3 : function _luaS_newudata(i1, i3, i4) {
38796 3 : i1 = i1 | 0;
38797 3 : i3 = i3 | 0;
38798 3 : i4 = i4 | 0;
38799 3 : var i2 = 0;
38800 3 : i2 = STACKTOP;
38801 3 : if (i3 >>> 0 > 4294967269) {
38802 3 : _luaM_toobig(i1);
38803 3 : } else {
38804 3 : i1 = _luaC_newobj(i1, 7, i3 + 24 | 0, 0, 0) | 0;
38805 3 : HEAP32[i1 + 16 >> 2] = i3;
38806 3 : HEAP32[i1 + 8 >> 2] = 0;
38807 3 : HEAP32[i1 + 12 >> 2] = i4;
38808 3 : STACKTOP = i2;
38809 3 : return i1 | 0;
38810 3 : }
38811 3 : return 0;
38812 3 : }
38813 1 : function _lua_dump(i1, i4, i5) {
38814 0 : i1 = i1 | 0;
38815 0 : i4 = i4 | 0;
38816 0 : i5 = i5 | 0;
38817 0 : var i2 = 0, i3 = 0;
38818 0 : i2 = STACKTOP;
38819 0 : i3 = HEAP32[i1 + 8 >> 2] | 0;
38820 0 : if ((HEAP32[i3 + -8 >> 2] | 0) != 70) {
38821 0 : i5 = 1;
38822 0 : STACKTOP = i2;
38823 0 : return i5 | 0;
38824 0 : }
38825 0 : i5 = _luaU_dump(i1, HEAP32[(HEAP32[i3 + -16 >> 2] | 0) + 12 >> 2] | 0, i4, i5, 0) | 0;
38826 0 : STACKTOP = i2;
38827 0 : return i5 | 0;
38828 1 : }
38829 1 : function _luaS_eqlngstr(i2, i4) {
38830 0 : i2 = i2 | 0;
38831 0 : i4 = i4 | 0;
38832 0 : var i1 = 0, i3 = 0;
38833 0 : i1 = STACKTOP;
38834 0 : i3 = HEAP32[i2 + 12 >> 2] | 0;
38835 0 : if ((i2 | 0) != (i4 | 0)) {
38836 0 : if ((i3 | 0) == (HEAP32[i4 + 12 >> 2] | 0)) {
38837 0 : i2 = (_memcmp(i2 + 16 | 0, i4 + 16 | 0, i3) | 0) == 0;
38838 0 : } else {
38839 0 : i2 = 0;
38840 0 : }
38841 0 : } else {
38842 0 : i2 = 1;
38843 0 : }
38844 0 : STACKTOP = i1;
38845 0 : return i2 & 1 | 0;
38846 1 : }
38847 1 : function _luaC_barrier_(i4, i3, i1) {
38848 0 : i4 = i4 | 0;
38849 0 : i3 = i3 | 0;
38850 0 : i1 = i1 | 0;
38851 0 : var i2 = 0;
38852 0 : i2 = STACKTOP;
38853 0 : i4 = HEAP32[i4 + 12 >> 2] | 0;
38854 0 : if ((HEAPU8[i4 + 61 | 0] | 0) < 2) {
38855 0 : _reallymarkobject(i4, i1);
38856 0 : STACKTOP = i2;
38857 0 : return;
38858 0 : } else {
38859 0 : i3 = i3 + 5 | 0;
38860 0 : HEAP8[i3] = HEAP8[i4 + 60 | 0] & 3 | HEAP8[i3] & 184;
38861 0 : STACKTOP = i2;
38862 0 : return;
38863 0 : }
38864 1 : }
38865 1 : function _db_getupvalue(i1) {
38866 0 : i1 = i1 | 0;
38867 0 : var i2 = 0, i3 = 0;
38868 0 : i2 = STACKTOP;
38869 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
38870 0 : _luaL_checktype(i1, 1, 6);
38871 0 : i3 = _lua_getupvalue(i1, 1, i3) | 0;
38872 0 : if ((i3 | 0) == 0) {
38873 0 : i3 = 0;
38874 0 : STACKTOP = i2;
38875 0 : return i3 | 0;
38876 0 : }
38877 0 : _lua_pushstring(i1, i3) | 0;
38878 0 : _lua_insert(i1, -2);
38879 0 : i3 = 2;
38880 0 : STACKTOP = i2;
38881 0 : return i3 | 0;
38882 1 : }
38883 1 : function _os_execute(i1) {
38884 0 : i1 = i1 | 0;
38885 0 : var i2 = 0, i3 = 0, i4 = 0;
38886 0 : i2 = STACKTOP;
38887 0 : i4 = _luaL_optlstring(i1, 1, 0, 0) | 0;
38888 0 : i3 = _system(i4 | 0) | 0;
38889 0 : if ((i4 | 0) == 0) {
38890 0 : _lua_pushboolean(i1, i3);
38891 0 : i4 = 1;
38892 0 : STACKTOP = i2;
38893 0 : return i4 | 0;
38894 0 : } else {
38895 0 : i4 = _luaL_execresult(i1, i3) | 0;
38896 0 : STACKTOP = i2;
38897 0 : return i4 | 0;
38898 0 : }
38899 0 : return 0;
38900 1 : }
38901 1 : function _lua_pushfstring(i4, i5, i1) {
38902 1 : i4 = i4 | 0;
38903 1 : i5 = i5 | 0;
38904 1 : i1 = i1 | 0;
38905 1 : var i2 = 0, i3 = 0;
38906 1 : i2 = STACKTOP;
38907 1 : STACKTOP = STACKTOP + 16 | 0;
38908 1 : i3 = i2;
38909 1 : if ((HEAP32[(HEAP32[i4 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
38910 1 : _luaC_step(i4);
38911 1 : }
38912 1 : HEAP32[i3 >> 2] = i1;
38913 1 : i5 = _luaO_pushvfstring(i4, i5, i3) | 0;
38914 1 : STACKTOP = i2;
38915 1 : return i5 | 0;
38916 1 : }
38917 1 : function _luaB_dofile(i1) {
38918 0 : i1 = i1 | 0;
38919 0 : var i2 = 0, i3 = 0;
38920 0 : i2 = STACKTOP;
38921 0 : i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
38922 0 : _lua_settop(i1, 1);
38923 0 : if ((_luaL_loadfilex(i1, i3, 0) | 0) == 0) {
38924 0 : _lua_callk(i1, 0, -1, 0, 164);
38925 0 : i3 = (_lua_gettop(i1) | 0) + -1 | 0;
38926 0 : STACKTOP = i2;
38927 0 : return i3 | 0;
38928 0 : } else {
38929 0 : _lua_error(i1) | 0;
38930 0 : }
38931 0 : return 0;
38932 1 : }
38933 1 : function _f_write(i1) {
38934 0 : i1 = i1 | 0;
38935 0 : var i2 = 0, i3 = 0;
38936 0 : i2 = STACKTOP;
38937 0 : STACKTOP = STACKTOP + 16 | 0;
38938 0 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
38939 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38940 0 : _luaL_error(i1, 3080, i2) | 0;
38941 0 : }
38942 0 : i3 = HEAP32[i3 >> 2] | 0;
38943 0 : _lua_pushvalue(i1, 1);
38944 0 : i3 = _g_write(i1, i3, 2) | 0;
38945 0 : STACKTOP = i2;
38946 0 : return i3 | 0;
38947 1 : }
38948 1 : function _lua_getctx(i3, i1) {
38949 0 : i3 = i3 | 0;
38950 0 : i1 = i1 | 0;
38951 0 : var i2 = 0;
38952 0 : i2 = STACKTOP;
38953 0 : i3 = HEAP32[i3 + 16 >> 2] | 0;
38954 0 : if ((HEAP8[i3 + 18 | 0] & 8) == 0) {
38955 0 : i3 = 0;
38956 0 : STACKTOP = i2;
38957 0 : return i3 | 0;
38958 0 : }
38959 0 : if ((i1 | 0) != 0) {
38960 0 : HEAP32[i1 >> 2] = HEAP32[i3 + 24 >> 2];
38961 0 : }
38962 0 : i3 = HEAPU8[i3 + 37 | 0] | 0;
38963 0 : STACKTOP = i2;
38964 0 : return i3 | 0;
38965 1 : }
38966 1 : function _f_flush(i1) {
38967 0 : i1 = i1 | 0;
38968 0 : var i2 = 0, i3 = 0;
38969 0 : i2 = STACKTOP;
38970 0 : STACKTOP = STACKTOP + 16 | 0;
38971 0 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
38972 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
38973 0 : _luaL_error(i1, 3080, i2) | 0;
38974 0 : }
38975 0 : i3 = _luaL_fileresult(i1, (_fflush(HEAP32[i3 >> 2] | 0) | 0) == 0 | 0, 0) | 0;
38976 0 : STACKTOP = i2;
38977 0 : return i3 | 0;
38978 1 : }
38979 1 : function _os_tmpname(i1) {
38980 0 : i1 = i1 | 0;
38981 0 : var i2 = 0, i3 = 0;
38982 0 : i2 = STACKTOP;
38983 0 : STACKTOP = STACKTOP + 32 | 0;
38984 0 : i3 = i2 + 4 | 0;
38985 0 : if ((_tmpnam(i3 | 0) | 0) == 0) {
38986 0 : i3 = _luaL_error(i1, 5824, i2) | 0;
38987 0 : STACKTOP = i2;
38988 0 : return i3 | 0;
38989 0 : } else {
38990 0 : _lua_pushstring(i1, i3) | 0;
38991 0 : i3 = 1;
38992 0 : STACKTOP = i2;
38993 0 : return i3 | 0;
38994 0 : }
38995 0 : return 0;
38996 1 : }
38997 1 : function _traceback(i1) {
38998 0 : i1 = i1 | 0;
38999 0 : var i2 = 0, i3 = 0;
39000 0 : i2 = STACKTOP;
39001 0 : i3 = _lua_tolstring(i1, 1, 0) | 0;
39002 0 : if ((i3 | 0) == 0) {
39003 0 : if ((_lua_type(i1, 1) | 0) >= 1 ? (_luaL_callmeta(i1, 1, 216) | 0) == 0 : 0) {
39004 0 : _lua_pushlstring(i1, 232, 18) | 0;
39005 0 : }
39006 0 : } else {
39007 0 : _luaL_traceback(i1, i1, i3, 1);
39008 0 : }
39009 0 : STACKTOP = i2;
39010 0 : return 1;
39011 1 : }
39012 143016 : function _luaH_new(i1) {
39013 143016 : i1 = i1 | 0;
39014 143016 : var i2 = 0;
39015 143016 : i2 = STACKTOP;
39016 143016 : i1 = _luaC_newobj(i1, 5, 32, 0, 0) | 0;
39017 143016 : HEAP32[i1 + 8 >> 2] = 0;
39018 143016 : HEAP8[i1 + 6 | 0] = -1;
39019 143016 : HEAP32[i1 + 12 >> 2] = 0;
39020 143016 : HEAP32[i1 + 28 >> 2] = 0;
39021 143016 : HEAP32[i1 + 16 >> 2] = 8016;
39022 143016 : HEAP8[i1 + 7 | 0] = 0;
39023 143016 : HEAP32[i1 + 20 >> 2] = 8016;
39024 143016 : STACKTOP = i2;
39025 143016 : return i1 | 0;
39026 143016 : }
39027 1 : function _luaL_len(i1, i3) {
39028 1 : i1 = i1 | 0;
39029 1 : i3 = i3 | 0;
39030 1 : var i2 = 0, i4 = 0;
39031 1 : i2 = STACKTOP;
39032 1 : STACKTOP = STACKTOP + 16 | 0;
39033 1 : i4 = i2 + 4 | 0;
39034 1 : _lua_len(i1, i3);
39035 1 : i3 = _lua_tointegerx(i1, -1, i4) | 0;
39036 1 : if ((HEAP32[i4 >> 2] | 0) == 0) {
39037 1 : _luaL_error(i1, 1352, i2) | 0;
39038 1 : }
39039 1 : _lua_settop(i1, -2);
39040 1 : STACKTOP = i2;
39041 1 : return i3 | 0;
39042 1 : }
39043 1 : function _getS(i3, i2, i1) {
39044 0 : i3 = i3 | 0;
39045 0 : i2 = i2 | 0;
39046 0 : i1 = i1 | 0;
39047 0 : var i4 = 0, i5 = 0;
39048 0 : i3 = STACKTOP;
39049 0 : i5 = i2 + 4 | 0;
39050 0 : i4 = HEAP32[i5 >> 2] | 0;
39051 0 : if ((i4 | 0) == 0) {
39052 0 : i5 = 0;
39053 0 : STACKTOP = i3;
39054 0 : return i5 | 0;
39055 0 : }
39056 0 : HEAP32[i1 >> 2] = i4;
39057 0 : HEAP32[i5 >> 2] = 0;
39058 0 : i5 = HEAP32[i2 >> 2] | 0;
39059 0 : STACKTOP = i3;
39060 0 : return i5 | 0;
39061 1 : }
39062 4 : function _luaC_runtilstate(i1, i4) {
39063 4 : i1 = i1 | 0;
39064 4 : i4 = i4 | 0;
39065 4 : var i2 = 0, i3 = 0;
39066 4 : i2 = STACKTOP;
39067 4 : i3 = (HEAP32[i1 + 12 >> 2] | 0) + 61 | 0;
39068 4 : if ((1 << (HEAPU8[i3] | 0) & i4 | 0) != 0) {
39069 4 : STACKTOP = i2;
39070 4 : return;
39071 4 : }
39072 4 : do {
39073 4 : _singlestep(i1) | 0;
39074 4 : } while ((1 << (HEAPU8[i3] | 0) & i4 | 0) == 0);
39075 4 : STACKTOP = i2;
39076 4 : return;
39077 4 : }
39078 1 : function _luaX_init(i1) {
39079 1 : i1 = i1 | 0;
39080 1 : var i2 = 0, i3 = 0, i4 = 0, i5 = 0;
39081 1 : i2 = STACKTOP;
39082 1 : i3 = 0;
39083 1 : do {
39084 1 : i4 = _luaS_new(i1, HEAP32[12096 + (i3 << 2) >> 2] | 0) | 0;
39085 1 : i5 = i4 + 5 | 0;
39086 1 : HEAP8[i5] = HEAPU8[i5] | 0 | 32;
39087 1 : i3 = i3 + 1 | 0;
39088 1 : HEAP8[i4 + 6 | 0] = i3;
39089 1 : } while ((i3 | 0) != 22);
39090 1 : STACKTOP = i2;
39091 1 : return;
39092 1 : }
39093 21 : function _luaK_indexed(i5, i1, i4) {
39094 21 : i5 = i5 | 0;
39095 21 : i1 = i1 | 0;
39096 21 : i4 = i4 | 0;
39097 21 : var i2 = 0, i3 = 0;
39098 21 : i3 = STACKTOP;
39099 21 : i2 = i1 + 8 | 0;
39100 21 : HEAP8[i2 + 2 | 0] = HEAP32[i2 >> 2];
39101 21 : HEAP16[i2 >> 1] = _luaK_exp2RK(i5, i4) | 0;
39102 21 : HEAP8[i2 + 3 | 0] = (HEAP32[i1 >> 2] | 0) == 8 ? 8 : 7;
39103 21 : HEAP32[i1 >> 2] = 9;
39104 21 : STACKTOP = i3;
39105 21 : return;
39106 21 : }
39107 1 : function _db_setuservalue(i1) {
39108 0 : i1 = i1 | 0;
39109 0 : var i2 = 0;
39110 0 : i2 = STACKTOP;
39111 0 : if ((_lua_type(i1, 1) | 0) == 2) {
39112 0 : _luaL_argerror(i1, 1, 11680) | 0;
39113 0 : }
39114 0 : _luaL_checktype(i1, 1, 7);
39115 0 : if ((_lua_type(i1, 2) | 0) >= 1) {
39116 0 : _luaL_checktype(i1, 2, 5);
39117 0 : }
39118 0 : _lua_settop(i1, 2);
39119 0 : _lua_setuservalue(i1, 1);
39120 0 : STACKTOP = i2;
39121 0 : return 1;
39122 1 : }
39123 1 : function _ll_seeall(i1) {
39124 0 : i1 = i1 | 0;
39125 0 : var i2 = 0;
39126 0 : i2 = STACKTOP;
39127 0 : _luaL_checktype(i1, 1, 5);
39128 0 : if ((_lua_getmetatable(i1, 1) | 0) == 0) {
39129 0 : _lua_createtable(i1, 0, 1);
39130 0 : _lua_pushvalue(i1, -1);
39131 0 : _lua_setmetatable(i1, 1) | 0;
39132 0 : }
39133 0 : _lua_rawgeti(i1, -1001e3, 2);
39134 0 : _lua_setfield(i1, -2, 5168);
39135 0 : STACKTOP = i2;
39136 0 : return 0;
39137 1 : }
39138 1 : function _luaL_loadbufferx(i3, i5, i4, i2, i1) {
39139 0 : i3 = i3 | 0;
39140 0 : i5 = i5 | 0;
39141 0 : i4 = i4 | 0;
39142 0 : i2 = i2 | 0;
39143 0 : i1 = i1 | 0;
39144 0 : var i6 = 0, i7 = 0;
39145 0 : i6 = STACKTOP;
39146 0 : STACKTOP = STACKTOP + 16 | 0;
39147 0 : i7 = i6;
39148 0 : HEAP32[i7 >> 2] = i5;
39149 0 : HEAP32[i7 + 4 >> 2] = i4;
39150 0 : i5 = _lua_load(i3, 2, i7, i2, i1) | 0;
39151 0 : STACKTOP = i6;
39152 0 : return i5 | 0;
39153 1 : }
39154 6 : function _luaT_gettm(i1, i3, i4) {
39155 6 : i1 = i1 | 0;
39156 6 : i3 = i3 | 0;
39157 6 : i4 = i4 | 0;
39158 6 : var i2 = 0;
39159 6 : i2 = STACKTOP;
39160 6 : i4 = _luaH_getstr(i1, i4) | 0;
39161 6 : if ((HEAP32[i4 + 8 >> 2] | 0) != 0) {
39162 6 : STACKTOP = i2;
39163 6 : return i4 | 0;
39164 6 : }
39165 6 : i4 = i1 + 6 | 0;
39166 6 : HEAP8[i4] = HEAPU8[i4] | 0 | 1 << i3;
39167 6 : i4 = 0;
39168 6 : STACKTOP = i2;
39169 6 : return i4 | 0;
39170 6 : }
39171 5 : function _luaL_pushresult(i1) {
39172 5 : i1 = i1 | 0;
39173 5 : var i2 = 0, i3 = 0;
39174 5 : i2 = STACKTOP;
39175 5 : i3 = HEAP32[i1 + 12 >> 2] | 0;
39176 5 : _lua_pushlstring(i3, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 8 >> 2] | 0) | 0;
39177 5 : if ((HEAP32[i1 >> 2] | 0) == (i1 + 16 | 0)) {
39178 5 : STACKTOP = i2;
39179 5 : return;
39180 5 : }
39181 5 : _lua_remove(i3, -2);
39182 5 : STACKTOP = i2;
39183 5 : return;
39184 5 : }
39185 1 : function _resume_error(i1, i3, i2) {
39186 0 : i1 = i1 | 0;
39187 0 : i3 = i3 | 0;
39188 0 : i2 = i2 | 0;
39189 0 : var i4 = 0;
39190 0 : i4 = i1 + 8 | 0;
39191 0 : HEAP32[i4 >> 2] = i2;
39192 0 : i3 = _luaS_new(i1, i3) | 0;
39193 0 : HEAP32[i2 >> 2] = i3;
39194 0 : HEAP32[i2 + 8 >> 2] = HEAPU8[i3 + 4 | 0] | 0 | 64;
39195 0 : HEAP32[i4 >> 2] = (HEAP32[i4 >> 2] | 0) + 16;
39196 0 : _luaD_throw(i1, -1);
39197 1 : }
39198 3 : function _lua_absindex(i3, i1) {
39199 3 : i3 = i3 | 0;
39200 3 : i1 = i1 | 0;
39201 3 : var i2 = 0;
39202 3 : i2 = STACKTOP;
39203 3 : if ((i1 + 1000999 | 0) >>> 0 > 1000999) {
39204 3 : i3 = i1;
39205 3 : STACKTOP = i2;
39206 3 : return i3 | 0;
39207 3 : }
39208 3 : i3 = ((HEAP32[i3 + 8 >> 2] | 0) - (HEAP32[HEAP32[i3 + 16 >> 2] >> 2] | 0) >> 4) + i1 | 0;
39209 3 : STACKTOP = i2;
39210 3 : return i3 | 0;
39211 3 : }
39212 24 : function ___uremdi3(i4, i3, i2, i1) {
39213 24 : i4 = i4 | 0;
39214 24 : i3 = i3 | 0;
39215 24 : i2 = i2 | 0;
39216 24 : i1 = i1 | 0;
39217 24 : var i5 = 0, i6 = 0;
39218 24 : i6 = STACKTOP;
39219 24 : STACKTOP = STACKTOP + 8 | 0;
39220 24 : i5 = i6 | 0;
39221 24 : ___udivmoddi4(i4, i3, i2, i1, i5) | 0;
39222 24 : STACKTOP = i6;
39223 24 : return (tempRet0 = HEAP32[i5 + 4 >> 2] | 0, HEAP32[i5 >> 2] | 0) | 0;
39224 24 : }
39225 1 : function _f_read(i1) {
39226 0 : i1 = i1 | 0;
39227 0 : var i2 = 0, i3 = 0;
39228 0 : i2 = STACKTOP;
39229 0 : STACKTOP = STACKTOP + 16 | 0;
39230 0 : i3 = _luaL_checkudata(i1, 1, 2832) | 0;
39231 0 : if ((HEAP32[i3 + 4 >> 2] | 0) == 0) {
39232 0 : _luaL_error(i1, 3080, i2) | 0;
39233 0 : }
39234 0 : i3 = _g_read(i1, HEAP32[i3 >> 2] | 0, 2) | 0;
39235 0 : STACKTOP = i2;
39236 0 : return i3 | 0;
39237 1 : }
39238 1 : function _sort(i1) {
39239 0 : i1 = i1 | 0;
39240 0 : var i2 = 0, i3 = 0;
39241 0 : i2 = STACKTOP;
39242 0 : _luaL_checktype(i1, 1, 5);
39243 0 : i3 = _luaL_len(i1, 1) | 0;
39244 0 : _luaL_checkstack(i1, 40, 8208);
39245 0 : if ((_lua_type(i1, 2) | 0) >= 1) {
39246 0 : _luaL_checktype(i1, 2, 6);
39247 0 : }
39248 0 : _lua_settop(i1, 2);
39249 0 : _auxsort(i1, 1, i3);
39250 0 : STACKTOP = i2;
39251 0 : return 0;
39252 1 : }
39253 1 : function _luaB_error(i1) {
39254 0 : i1 = i1 | 0;
39255 0 : var i2 = 0;
39256 0 : i2 = _luaL_optinteger(i1, 2, 1) | 0;
39257 0 : _lua_settop(i1, 1);
39258 0 : if (!((_lua_isstring(i1, 1) | 0) != 0 & (i2 | 0) > 0)) {
39259 0 : _lua_error(i1) | 0;
39260 0 : }
39261 0 : _luaL_where(i1, i2);
39262 0 : _lua_pushvalue(i1, 1);
39263 0 : _lua_concat(i1, 2);
39264 0 : _lua_error(i1) | 0;
39265 0 : return 0;
39266 1 : }
39267 1 : function _error(i1, i2) {
39268 0 : i1 = i1 | 0;
39269 0 : i2 = i2 | 0;
39270 0 : var i3 = 0, i4 = 0;
39271 0 : i3 = STACKTOP;
39272 0 : STACKTOP = STACKTOP + 16 | 0;
39273 0 : i4 = HEAP32[i1 >> 2] | 0;
39274 0 : HEAP32[i3 >> 2] = HEAP32[i1 + 12 >> 2];
39275 0 : HEAP32[i3 + 4 >> 2] = i2;
39276 0 : _luaO_pushfstring(i4, 8840, i3) | 0;
39277 0 : _luaD_throw(HEAP32[i1 >> 2] | 0, 3);
39278 1 : }
39279 1 : function _ipairsaux(i1) {
39280 0 : i1 = i1 | 0;
39281 0 : var i2 = 0, i3 = 0;
39282 0 : i2 = STACKTOP;
39283 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
39284 0 : _luaL_checktype(i1, 1, 5);
39285 0 : i3 = i3 + 1 | 0;
39286 0 : _lua_pushinteger(i1, i3);
39287 0 : _lua_rawgeti(i1, 1, i3);
39288 0 : i1 = (_lua_type(i1, -1) | 0) == 0;
39289 0 : STACKTOP = i2;
39290 0 : return (i1 ? 1 : 2) | 0;
39291 1 : }
39292 1 : function _panic(i1) {
39293 0 : i1 = i1 | 0;
39294 0 : var i2 = 0, i3 = 0, i4 = 0;
39295 0 : i2 = STACKTOP;
39296 0 : STACKTOP = STACKTOP + 16 | 0;
39297 0 : i4 = i2;
39298 0 : i3 = HEAP32[_stderr >> 2] | 0;
39299 0 : HEAP32[i4 >> 2] = _lua_tolstring(i1, -1, 0) | 0;
39300 0 : _fprintf(i3 | 0, 1656, i4 | 0) | 0;
39301 0 : _fflush(i3 | 0) | 0;
39302 0 : STACKTOP = i2;
39303 0 : return 0;
39304 1 : }
39305 1 : function _testSetjmp(i1, i2) {
39306 0 : i1 = i1 | 0;
39307 0 : i2 = i2 | 0;
39308 0 : var i3 = 0, i4 = 0;
39309 0 : while ((i3 | 0) < 20) {
39310 0 : i4 = HEAP32[i2 + (i3 << 2) >> 2] | 0;
39311 0 : if ((i4 | 0) == 0) break;
39312 0 : if ((i4 | 0) == (i1 | 0)) {
39313 0 : return HEAP32[i2 + ((i3 << 2) + 4) >> 2] | 0;
39314 0 : }
39315 0 : i3 = i3 + 2 | 0;
39316 0 : }
39317 0 : return 0;
39318 1 : }
39319 1 : function _luaopen_math(i1) {
39320 1 : i1 = i1 | 0;
39321 1 : var i2 = 0;
39322 1 : i2 = STACKTOP;
39323 1 : _lua_createtable(i1, 0, 28);
39324 1 : _luaL_setfuncs(i1, 3576, 0);
39325 1 : _lua_pushnumber(i1, 3.141592653589793);
39326 1 : _lua_setfield(i1, -2, 3808);
39327 1 : _lua_pushnumber(i1, inf);
39328 1 : _lua_setfield(i1, -2, 3816);
39329 1 : STACKTOP = i2;
39330 1 : return 1;
39331 1 : }
39332 1 : function _luaopen_base(i1) {
39333 1 : i1 = i1 | 0;
39334 1 : var i2 = 0;
39335 1 : i2 = STACKTOP;
39336 1 : _lua_rawgeti(i1, -1001e3, 2);
39337 1 : _lua_rawgeti(i1, -1001e3, 2);
39338 1 : _lua_setfield(i1, -2, 9144);
39339 1 : _luaL_setfuncs(i1, 9152, 0);
39340 1 : _lua_pushlstring(i1, 9344, 7) | 0;
39341 1 : _lua_setfield(i1, -2, 9352);
39342 1 : STACKTOP = i2;
39343 1 : return 1;
39344 1 : }
39345 46 : function _luaE_extendCI(i1) {
39346 46 : i1 = i1 | 0;
39347 46 : var i2 = 0, i3 = 0;
39348 46 : i3 = STACKTOP;
39349 46 : i2 = _luaM_realloc_(i1, 0, 0, 40) | 0;
39350 46 : i1 = i1 + 16 | 0;
39351 46 : HEAP32[(HEAP32[i1 >> 2] | 0) + 12 >> 2] = i2;
39352 46 : HEAP32[i2 + 8 >> 2] = HEAP32[i1 >> 2];
39353 46 : HEAP32[i2 + 12 >> 2] = 0;
39354 46 : STACKTOP = i3;
39355 46 : return i2 | 0;
39356 46 : }
39357 1 : function _luaB_getmetatable(i1) {
39358 0 : i1 = i1 | 0;
39359 0 : var i2 = 0;
39360 0 : i2 = STACKTOP;
39361 0 : _luaL_checkany(i1, 1);
39362 0 : if ((_lua_getmetatable(i1, 1) | 0) == 0) {
39363 0 : _lua_pushnil(i1);
39364 0 : STACKTOP = i2;
39365 0 : return 1;
39366 0 : } else {
39367 0 : _luaL_getmetafield(i1, 1, 9704) | 0;
39368 0 : STACKTOP = i2;
39369 0 : return 1;
39370 0 : }
39371 0 : return 0;
39372 1 : }
39373 1 : function _lua_pushunsigned(i1, i2) {
39374 0 : i1 = i1 | 0;
39375 0 : i2 = i2 | 0;
39376 0 : var d3 = 0.0;
39377 0 : if ((i2 | 0) > -1) {
39378 0 : d3 = +(i2 | 0);
39379 0 : } else {
39380 0 : d3 = +(i2 >>> 0);
39381 0 : }
39382 0 : i2 = i1 + 8 | 0;
39383 0 : i1 = HEAP32[i2 >> 2] | 0;
39384 0 : HEAPF64[i1 >> 3] = d3;
39385 0 : HEAP32[i1 + 8 >> 2] = 3;
39386 0 : HEAP32[i2 >> 2] = i1 + 16;
39387 0 : return;
39388 1 : }
39389 1 : function _lua_pushthread(i1) {
39390 0 : i1 = i1 | 0;
39391 0 : var i2 = 0, i3 = 0;
39392 0 : i2 = i1 + 8 | 0;
39393 0 : i3 = HEAP32[i2 >> 2] | 0;
39394 0 : HEAP32[i3 >> 2] = i1;
39395 0 : HEAP32[i3 + 8 >> 2] = 72;
39396 0 : HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
39397 0 : return (HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0) == (i1 | 0) | 0;
39398 1 : }
39399 1 : function _gctm(i1) {
39400 1 : i1 = i1 | 0;
39401 1 : var i2 = 0, i3 = 0;
39402 1 : i2 = STACKTOP;
39403 1 : i3 = _luaL_len(i1, 1) | 0;
39404 1 : if ((i3 | 0) <= 0) {
39405 1 : STACKTOP = i2;
39406 1 : return 0;
39407 1 : }
39408 1 : do {
39409 1 : _lua_rawgeti(i1, 1, i3);
39410 1 : _lua_settop(i1, -2);
39411 1 : i3 = i3 + -1 | 0;
39412 1 : } while ((i3 | 0) > 0);
39413 1 : STACKTOP = i2;
39414 1 : return 0;
39415 1 : }
39416 1 : function ___muldi3(i4, i2, i3, i1) {
39417 0 : i4 = i4 | 0;
39418 0 : i2 = i2 | 0;
39419 0 : i3 = i3 | 0;
39420 0 : i1 = i1 | 0;
39421 0 : var i5 = 0, i6 = 0;
39422 0 : i5 = i4;
39423 0 : i6 = i3;
39424 0 : i4 = ___muldsi3(i5, i6) | 0;
39425 0 : i3 = tempRet0;
39426 0 : return (tempRet0 = (Math_imul(i2, i6) | 0) + (Math_imul(i1, i5) | 0) + i3 | i3 & 0, i4 | 0 | 0) | 0;
39427 1 : }
39428 1 : function _luaH_resizearray(i1, i3, i4) {
39429 0 : i1 = i1 | 0;
39430 0 : i3 = i3 | 0;
39431 0 : i4 = i4 | 0;
39432 0 : var i2 = 0, i5 = 0;
39433 0 : i2 = STACKTOP;
39434 0 : if ((HEAP32[i3 + 16 >> 2] | 0) == 8016) {
39435 0 : i5 = 0;
39436 0 : } else {
39437 0 : i5 = 1 << (HEAPU8[i3 + 7 | 0] | 0);
39438 0 : }
39439 0 : _luaH_resize(i1, i3, i4, i5);
39440 0 : STACKTOP = i2;
39441 0 : return;
39442 1 : }
39443 18 : function _luaK_stringK(i1, i2) {
39444 18 : i1 = i1 | 0;
39445 18 : i2 = i2 | 0;
39446 18 : var i3 = 0, i4 = 0;
39447 18 : i3 = STACKTOP;
39448 18 : STACKTOP = STACKTOP + 16 | 0;
39449 18 : i4 = i3;
39450 18 : HEAP32[i4 >> 2] = i2;
39451 18 : HEAP32[i4 + 8 >> 2] = HEAPU8[i2 + 4 | 0] | 0 | 64;
39452 18 : i2 = _addk(i1, i4, i4) | 0;
39453 18 : STACKTOP = i3;
39454 18 : return i2 | 0;
39455 18 : }
39456 1 : function _math_modf(i1) {
39457 0 : i1 = i1 | 0;
39458 0 : var i2 = 0, d3 = 0.0, i4 = 0;
39459 0 : i2 = STACKTOP;
39460 0 : STACKTOP = STACKTOP + 16 | 0;
39461 0 : i4 = i2;
39462 0 : d3 = +_modf(+(+_luaL_checknumber(i1, 1)), i4 | 0);
39463 0 : _lua_pushnumber(i1, +HEAPF64[i4 >> 3]);
39464 0 : _lua_pushnumber(i1, d3);
39465 0 : STACKTOP = i2;
39466 0 : return 2;
39467 1 : }
39468 1 : function _os_setlocale(i1) {
39469 0 : i1 = i1 | 0;
39470 0 : var i2 = 0, i3 = 0;
39471 0 : i2 = STACKTOP;
39472 0 : i3 = _luaL_optlstring(i1, 1, 0, 0) | 0;
39473 0 : _lua_pushstring(i1, _setlocale(HEAP32[5960 + ((_luaL_checkoption(i1, 2, 6016, 5984) | 0) << 2) >> 2] | 0, i3 | 0) | 0) | 0;
39474 0 : STACKTOP = i2;
39475 0 : return 1;
39476 1 : }
39477 1 : function _luaB_pcall(i1) {
39478 0 : i1 = i1 | 0;
39479 0 : var i2 = 0;
39480 0 : i2 = STACKTOP;
39481 0 : _luaL_checkany(i1, 1);
39482 0 : _lua_pushnil(i1);
39483 0 : _lua_insert(i1, 1);
39484 0 : i1 = _finishpcall(i1, (_lua_pcallk(i1, (_lua_gettop(i1) | 0) + -2 | 0, -1, 0, 0, 166) | 0) == 0 | 0) | 0;
39485 0 : STACKTOP = i2;
39486 0 : return i1 | 0;
39487 1 : }
39488 1 : function _error_expected(i1, i2) {
39489 0 : i1 = i1 | 0;
39490 0 : i2 = i2 | 0;
39491 0 : var i3 = 0, i4 = 0;
39492 0 : i3 = STACKTOP;
39493 0 : STACKTOP = STACKTOP + 16 | 0;
39494 0 : i4 = HEAP32[i1 + 52 >> 2] | 0;
39495 0 : HEAP32[i3 >> 2] = _luaX_token2str(i1, i2) | 0;
39496 0 : _luaX_syntaxerror(i1, _luaO_pushfstring(i4, 6328, i3) | 0);
39497 1 : }
39498 1 : function _lua_pushvfstring(i1, i3, i4) {
39499 0 : i1 = i1 | 0;
39500 0 : i3 = i3 | 0;
39501 0 : i4 = i4 | 0;
39502 0 : var i2 = 0;
39503 0 : i2 = STACKTOP;
39504 0 : if ((HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 12 >> 2] | 0) > 0) {
39505 0 : _luaC_step(i1);
39506 0 : }
39507 0 : i4 = _luaO_pushvfstring(i1, i3, i4) | 0;
39508 0 : STACKTOP = i2;
39509 0 : return i4 | 0;
39510 1 : }
39511 1 : function _db_setmetatable(i1) {
39512 0 : i1 = i1 | 0;
39513 0 : var i2 = 0, i3 = 0;
39514 0 : i2 = STACKTOP;
39515 0 : i3 = _lua_type(i1, 2) | 0;
39516 0 : if (!((i3 | 0) == 0 | (i3 | 0) == 5)) {
39517 0 : _luaL_argerror(i1, 2, 11536) | 0;
39518 0 : }
39519 0 : _lua_settop(i1, 2);
39520 0 : _lua_setmetatable(i1, 1) | 0;
39521 0 : STACKTOP = i2;
39522 0 : return 1;
39523 1 : }
39524 1 : function _b_rrot(i1) {
39525 0 : i1 = i1 | 0;
39526 0 : var i2 = 0, i3 = 0, i4 = 0;
39527 0 : i2 = STACKTOP;
39528 0 : i3 = 0 - (_luaL_checkinteger(i1, 2) | 0) | 0;
39529 0 : i4 = _luaL_checkunsigned(i1, 1) | 0;
39530 0 : i3 = i3 & 31;
39531 0 : _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
39532 0 : STACKTOP = i2;
39533 0 : return 1;
39534 1 : }
39535 2865 : function _luaC_step(i1) {
39536 2865 : i1 = i1 | 0;
39537 2865 : var i2 = 0, i3 = 0;
39538 2865 : i2 = STACKTOP;
39539 2865 : i3 = HEAP32[i1 + 12 >> 2] | 0;
39540 2865 : if ((HEAP8[i3 + 63 | 0] | 0) == 0) {
39541 2865 : _luaE_setdebt(i3, -1600);
39542 2865 : STACKTOP = i2;
39543 2865 : return;
39544 2865 : } else {
39545 2865 : _luaC_forcestep(i1);
39546 2865 : STACKTOP = i2;
39547 2865 : return;
39548 2865 : }
39549 2865 : }
39550 1 : function _math_frexp(i1) {
39551 0 : i1 = i1 | 0;
39552 0 : var i2 = 0, i3 = 0;
39553 0 : i2 = STACKTOP;
39554 0 : STACKTOP = STACKTOP + 16 | 0;
39555 0 : i3 = i2;
39556 0 : _lua_pushnumber(i1, +_frexp(+(+_luaL_checknumber(i1, 1)), i3 | 0));
39557 0 : _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
39558 0 : STACKTOP = i2;
39559 0 : return 2;
39560 1 : }
39561 1 : function _luaO_pushfstring(i2, i1, i3) {
39562 0 : i2 = i2 | 0;
39563 0 : i1 = i1 | 0;
39564 0 : i3 = i3 | 0;
39565 0 : var i4 = 0, i5 = 0;
39566 0 : i4 = STACKTOP;
39567 0 : STACKTOP = STACKTOP + 16 | 0;
39568 0 : i5 = i4;
39569 0 : HEAP32[i5 >> 2] = i3;
39570 0 : i3 = _luaO_pushvfstring(i2, i1, i5) | 0;
39571 0 : STACKTOP = i4;
39572 0 : return i3 | 0;
39573 1 : }
39574 1 : function _luaO_hexavalue(i1) {
39575 0 : i1 = i1 | 0;
39576 0 : var i2 = 0;
39577 0 : i2 = STACKTOP;
39578 0 : if ((HEAP8[i1 + 10913 | 0] & 2) == 0) {
39579 0 : i1 = (i1 | 32) + -87 | 0;
39580 0 : STACKTOP = i2;
39581 0 : return i1 | 0;
39582 0 : } else {
39583 0 : i1 = i1 + -48 | 0;
39584 0 : STACKTOP = i2;
39585 0 : return i1 | 0;
39586 0 : }
39587 0 : return 0;
39588 1 : }
39589 1 : function _b_lrot(i1) {
39590 0 : i1 = i1 | 0;
39591 0 : var i2 = 0, i3 = 0, i4 = 0;
39592 0 : i2 = STACKTOP;
39593 0 : i3 = _luaL_checkinteger(i1, 2) | 0;
39594 0 : i4 = _luaL_checkunsigned(i1, 1) | 0;
39595 0 : i3 = i3 & 31;
39596 0 : _lua_pushunsigned(i1, i4 >>> (32 - i3 | 0) | i4 << i3);
39597 0 : STACKTOP = i2;
39598 0 : return 1;
39599 1 : }
39600 1 : function _f_lines(i1) {
39601 0 : i1 = i1 | 0;
39602 0 : var i2 = 0;
39603 0 : i2 = STACKTOP;
39604 0 : STACKTOP = STACKTOP + 16 | 0;
39605 0 : if ((HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] | 0) == 0) {
39606 0 : _luaL_error(i1, 3080, i2) | 0;
39607 0 : }
39608 0 : _aux_lines(i1, 0);
39609 0 : STACKTOP = i2;
39610 0 : return 1;
39611 1 : }
39612 1 : function _luaC_barrierback_(i2, i1) {
39613 0 : i2 = i2 | 0;
39614 0 : i1 = i1 | 0;
39615 0 : var i3 = 0;
39616 0 : i2 = HEAP32[i2 + 12 >> 2] | 0;
39617 0 : i3 = i1 + 5 | 0;
39618 0 : HEAP8[i3] = HEAP8[i3] & 251;
39619 0 : i2 = i2 + 88 | 0;
39620 0 : HEAP32[i1 + 24 >> 2] = HEAP32[i2 >> 2];
39621 0 : HEAP32[i2 >> 2] = i1;
39622 0 : return;
39623 1 : }
39624 1 : function _os_rename(i1) {
39625 0 : i1 = i1 | 0;
39626 0 : var i2 = 0, i3 = 0;
39627 0 : i2 = STACKTOP;
39628 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
39629 0 : i1 = _luaL_fileresult(i1, (_rename(i3 | 0, _luaL_checklstring(i1, 2, 0) | 0) | 0) == 0 | 0, 0) | 0;
39630 0 : STACKTOP = i2;
39631 0 : return i1 | 0;
39632 1 : }
39633 1 : function _bitshift64Ashr(i3, i2, i1) {
39634 0 : i3 = i3 | 0;
39635 0 : i2 = i2 | 0;
39636 0 : i1 = i1 | 0;
39637 0 : if ((i1 | 0) < 32) {
39638 0 : tempRet0 = i2 >> i1;
39639 0 : return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
39640 0 : }
39641 0 : tempRet0 = (i2 | 0) < 0 ? -1 : 0;
39642 0 : return i2 >> i1 - 32 | 0;
39643 1 : }
39644 1 : function _luaB_cowrap(i1) {
39645 0 : i1 = i1 | 0;
39646 0 : var i2 = 0, i3 = 0;
39647 0 : i2 = STACKTOP;
39648 0 : _luaL_checktype(i1, 1, 6);
39649 0 : i3 = _lua_newthread(i1) | 0;
39650 0 : _lua_pushvalue(i1, 1);
39651 0 : _lua_xmove(i1, i3, 1);
39652 0 : _lua_pushcclosure(i1, 167, 1);
39653 0 : STACKTOP = i2;
39654 0 : return 1;
39655 1 : }
39656 1 : function _gmatch(i1) {
39657 0 : i1 = i1 | 0;
39658 0 : var i2 = 0;
39659 0 : i2 = STACKTOP;
39660 0 : _luaL_checklstring(i1, 1, 0) | 0;
39661 0 : _luaL_checklstring(i1, 2, 0) | 0;
39662 0 : _lua_settop(i1, 2);
39663 0 : _lua_pushinteger(i1, 0);
39664 0 : _lua_pushcclosure(i1, 163, 3);
39665 0 : STACKTOP = i2;
39666 0 : return 1;
39667 1 : }
39668 1 : function _luaB_next(i2) {
39669 0 : i2 = i2 | 0;
39670 0 : var i1 = 0;
39671 0 : i1 = STACKTOP;
39672 0 : _luaL_checktype(i2, 1, 5);
39673 0 : _lua_settop(i2, 2);
39674 0 : if ((_lua_next(i2, 1) | 0) == 0) {
39675 0 : _lua_pushnil(i2);
39676 0 : i2 = 1;
39677 0 : } else {
39678 0 : i2 = 2;
39679 0 : }
39680 0 : STACKTOP = i1;
39681 0 : return i2 | 0;
39682 1 : }
39683 21 : function _luaK_codeABC(i5, i3, i4, i2, i1) {
39684 21 : i5 = i5 | 0;
39685 21 : i3 = i3 | 0;
39686 21 : i4 = i4 | 0;
39687 21 : i2 = i2 | 0;
39688 21 : i1 = i1 | 0;
39689 21 : var i6 = 0;
39690 21 : i6 = STACKTOP;
39691 21 : i5 = _luaK_code(i5, i4 << 6 | i3 | i2 << 23 | i1 << 14) | 0;
39692 21 : STACKTOP = i6;
39693 21 : return i5 | 0;
39694 21 : }
39695 216 : function _luaH_set(i2, i4, i5) {
39696 216 : i2 = i2 | 0;
39697 216 : i4 = i4 | 0;
39698 216 : i5 = i5 | 0;
39699 216 : var i1 = 0, i3 = 0;
39700 216 : i1 = STACKTOP;
39701 216 : i3 = _luaH_get(i4, i5) | 0;
39702 216 : if ((i3 | 0) == 5192) {
39703 216 : i3 = _luaH_newkey(i2, i4, i5) | 0;
39704 216 : }
39705 216 : STACKTOP = i1;
39706 216 : return i3 | 0;
39707 216 : }
39708 1 : function _luaZ_init(i4, i1, i3, i2) {
39709 1 : i4 = i4 | 0;
39710 1 : i1 = i1 | 0;
39711 1 : i3 = i3 | 0;
39712 1 : i2 = i2 | 0;
39713 1 : HEAP32[i1 + 16 >> 2] = i4;
39714 1 : HEAP32[i1 + 8 >> 2] = i3;
39715 1 : HEAP32[i1 + 12 >> 2] = i2;
39716 1 : HEAP32[i1 >> 2] = 0;
39717 1 : HEAP32[i1 + 4 >> 2] = 0;
39718 1 : return;
39719 1 : }
39720 1 : function _lua_pushlightuserdata(i2, i1) {
39721 1 : i2 = i2 | 0;
39722 1 : i1 = i1 | 0;
39723 1 : var i3 = 0;
39724 1 : i2 = i2 + 8 | 0;
39725 1 : i3 = HEAP32[i2 >> 2] | 0;
39726 1 : HEAP32[i3 >> 2] = i1;
39727 1 : HEAP32[i3 + 8 >> 2] = 2;
39728 1 : HEAP32[i2 >> 2] = (HEAP32[i2 >> 2] | 0) + 16;
39729 1 : return;
39730 1 : }
39731 1 : function copyTempFloat(i1) {
39732 0 : i1 = i1 | 0;
39733 0 : HEAP8[tempDoublePtr] = HEAP8[i1];
39734 0 : HEAP8[tempDoublePtr + 1 | 0] = HEAP8[i1 + 1 | 0];
39735 0 : HEAP8[tempDoublePtr + 2 | 0] = HEAP8[i1 + 2 | 0];
39736 0 : HEAP8[tempDoublePtr + 3 | 0] = HEAP8[i1 + 3 | 0];
39737 1 : }
39738 29 : function _bitshift64Shl(i2, i3, i1) {
39739 29 : i2 = i2 | 0;
39740 29 : i3 = i3 | 0;
39741 29 : i1 = i1 | 0;
39742 29 : if ((i1 | 0) < 32) {
39743 29 : tempRet0 = i3 << i1 | (i2 & (1 << i1) - 1 << 32 - i1) >>> 32 - i1;
39744 29 : return i2 << i1;
39745 29 : }
39746 29 : tempRet0 = i2 << i1 - 32;
39747 29 : return 0;
39748 29 : }
39749 1 : function _luaB_rawlen(i1) {
39750 0 : i1 = i1 | 0;
39751 0 : var i2 = 0;
39752 0 : i2 = STACKTOP;
39753 0 : if (((_lua_type(i1, 1) | 0) & -2 | 0) != 4) {
39754 0 : _luaL_argerror(i1, 1, 9784) | 0;
39755 0 : }
39756 0 : _lua_pushinteger(i1, _lua_rawlen(i1, 1) | 0);
39757 0 : STACKTOP = i2;
39758 0 : return 1;
39759 1 : }
39760 572924 : function _l_alloc(i3, i1, i4, i2) {
39761 572924 : i3 = i3 | 0;
39762 572924 : i1 = i1 | 0;
39763 572924 : i4 = i4 | 0;
39764 572924 : i2 = i2 | 0;
39765 572924 : i3 = STACKTOP;
39766 572924 : if ((i2 | 0) == 0) {
39767 572924 : _free(i1);
39768 572924 : i1 = 0;
39769 572924 : } else {
39770 572924 : i1 = _realloc(i1, i2) | 0;
39771 572924 : }
39772 572924 : STACKTOP = i3;
39773 572924 : return i1 | 0;
39774 572924 : }
39775 1 : function _bitshift64Lshr(i3, i2, i1) {
39776 0 : i3 = i3 | 0;
39777 0 : i2 = i2 | 0;
39778 0 : i1 = i1 | 0;
39779 0 : if ((i1 | 0) < 32) {
39780 0 : tempRet0 = i2 >>> i1;
39781 0 : return i3 >>> i1 | (i2 & (1 << i1) - 1) << 32 - i1;
39782 0 : }
39783 0 : tempRet0 = 0;
39784 0 : return i2 >>> i1 - 32 | 0;
39785 1 : }
39786 1 : function _luaG_aritherror(i3, i1, i2) {
39787 0 : i3 = i3 | 0;
39788 0 : i1 = i1 | 0;
39789 0 : i2 = i2 | 0;
39790 0 : var i4 = 0;
39791 0 : i4 = STACKTOP;
39792 0 : STACKTOP = STACKTOP + 16 | 0;
39793 0 : i4 = (_luaV_tonumber(i1, i4) | 0) == 0;
39794 0 : _luaG_typeerror(i3, i4 ? i1 : i2, 1928);
39795 1 : }
39796 1 : function _str_len(i1) {
39797 0 : i1 = i1 | 0;
39798 0 : var i2 = 0, i3 = 0;
39799 0 : i2 = STACKTOP;
39800 0 : STACKTOP = STACKTOP + 16 | 0;
39801 0 : i3 = i2;
39802 0 : _luaL_checklstring(i1, 1, i3) | 0;
39803 0 : _lua_pushinteger(i1, HEAP32[i3 >> 2] | 0);
39804 0 : STACKTOP = i2;
39805 0 : return 1;
39806 1 : }
39807 1 : function _luaL_optinteger(i3, i4, i2) {
39808 0 : i3 = i3 | 0;
39809 0 : i4 = i4 | 0;
39810 0 : i2 = i2 | 0;
39811 0 : var i1 = 0;
39812 0 : i1 = STACKTOP;
39813 0 : if ((_lua_type(i3, i4) | 0) >= 1) {
39814 0 : i2 = _luaL_checkinteger(i3, i4) | 0;
39815 0 : }
39816 0 : STACKTOP = i1;
39817 0 : return i2 | 0;
39818 1 : }
39819 1 : function _os_difftime(i1) {
39820 0 : i1 = i1 | 0;
39821 0 : var i2 = 0, i3 = 0;
39822 0 : i2 = STACKTOP;
39823 0 : i3 = ~~+_luaL_checknumber(i1, 1);
39824 0 : _lua_pushnumber(i1, +_difftime(i3 | 0, ~~+_luaL_optnumber(i1, 2, 0.0) | 0));
39825 0 : STACKTOP = i2;
39826 0 : return 1;
39827 1 : }
39828 1 : function _lua_pushboolean(i2, i1) {
39829 1 : i2 = i2 | 0;
39830 1 : i1 = i1 | 0;
39831 1 : var i3 = 0;
39832 1 : i2 = i2 + 8 | 0;
39833 1 : i3 = HEAP32[i2 >> 2] | 0;
39834 1 : HEAP32[i3 >> 2] = (i1 | 0) != 0;
39835 1 : HEAP32[i3 + 8 >> 2] = 1;
39836 1 : HEAP32[i2 >> 2] = i3 + 16;
39837 1 : return;
39838 1 : }
39839 1 : function _os_remove(i1) {
39840 0 : i1 = i1 | 0;
39841 0 : var i2 = 0, i3 = 0;
39842 0 : i2 = STACKTOP;
39843 0 : i3 = _luaL_checklstring(i1, 1, 0) | 0;
39844 0 : i1 = _luaL_fileresult(i1, (_remove(i3 | 0) | 0) == 0 | 0, i3) | 0;
39845 0 : STACKTOP = i2;
39846 0 : return i1 | 0;
39847 1 : }
39848 1 : function _luaopen_table(i1) {
39849 1 : i1 = i1 | 0;
39850 1 : var i2 = 0;
39851 1 : i2 = STACKTOP;
39852 1 : _lua_createtable(i1, 0, 7);
39853 1 : _luaL_setfuncs(i1, 8088, 0);
39854 1 : _lua_getfield(i1, -1, 8152);
39855 1 : _lua_setglobal(i1, 8152);
39856 1 : STACKTOP = i2;
39857 1 : return 1;
39858 1 : }
39859 1 : function _lua_pushinteger(i2, i1) {
39860 1 : i2 = i2 | 0;
39861 1 : i1 = i1 | 0;
39862 1 : var i3 = 0;
39863 1 : i2 = i2 + 8 | 0;
39864 1 : i3 = HEAP32[i2 >> 2] | 0;
39865 1 : HEAPF64[i3 >> 3] = +(i1 | 0);
39866 1 : HEAP32[i3 + 8 >> 2] = 3;
39867 1 : HEAP32[i2 >> 2] = i3 + 16;
39868 1 : return;
39869 1 : }
39870 1 : function _luaB_rawset(i1) {
39871 0 : i1 = i1 | 0;
39872 0 : var i2 = 0;
39873 0 : i2 = STACKTOP;
39874 0 : _luaL_checktype(i1, 1, 5);
39875 0 : _luaL_checkany(i1, 2);
39876 0 : _luaL_checkany(i1, 3);
39877 0 : _lua_settop(i1, 3);
39878 0 : _lua_rawset(i1, 1);
39879 0 : STACKTOP = i2;
39880 0 : return 1;
39881 1 : }
39882 2866 : function _luaE_setdebt(i2, i1) {
39883 2866 : i2 = i2 | 0;
39884 2866 : i1 = i1 | 0;
39885 2866 : var i3 = 0;
39886 2866 : i3 = i2 + 12 | 0;
39887 2866 : i2 = i2 + 8 | 0;
39888 2866 : HEAP32[i2 >> 2] = (HEAP32[i3 >> 2] | 0) - i1 + (HEAP32[i2 >> 2] | 0);
39889 2866 : HEAP32[i3 >> 2] = i1;
39890 2866 : return;
39891 2866 : }
39892 1 : function _luaB_cocreate(i1) {
39893 0 : i1 = i1 | 0;
39894 0 : var i2 = 0, i3 = 0;
39895 0 : i2 = STACKTOP;
39896 0 : _luaL_checktype(i1, 1, 6);
39897 0 : i3 = _lua_newthread(i1) | 0;
39898 0 : _lua_pushvalue(i1, 1);
39899 0 : _lua_xmove(i1, i3, 1);
39900 0 : STACKTOP = i2;
39901 0 : return 1;
39902 1 : }
39903 3 : function _io_noclose(i1) {
39904 3 : i1 = i1 | 0;
39905 3 : var i2 = 0;
39906 3 : i2 = STACKTOP;
39907 3 : HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) + 4 >> 2] = 154;
39908 3 : _lua_pushnil(i1);
39909 3 : _lua_pushlstring(i1, 2840, 26) | 0;
39910 3 : STACKTOP = i2;
39911 3 : return 2;
39912 3 : }
39913 1 : function _io_fclose(i1) {
39914 0 : i1 = i1 | 0;
39915 0 : var i2 = 0;
39916 0 : i2 = STACKTOP;
39917 0 : i1 = _luaL_fileresult(i1, (_fclose(HEAP32[(_luaL_checkudata(i1, 1, 2832) | 0) >> 2] | 0) | 0) == 0 | 0, 0) | 0;
39918 0 : STACKTOP = i2;
39919 0 : return i1 | 0;
39920 1 : }
39921 1 : function _luaL_optnumber(i3, i4, d2) {
39922 0 : i3 = i3 | 0;
39923 0 : i4 = i4 | 0;
39924 0 : d2 = +d2;
39925 0 : var i1 = 0;
39926 0 : i1 = STACKTOP;
39927 0 : if ((_lua_type(i3, i4) | 0) >= 1) {
39928 0 : d2 = +_luaL_checknumber(i3, i4);
39929 0 : }
39930 0 : STACKTOP = i1;
39931 0 : return +d2;
39932 1 : }
39933 1 : function _math_atan2(i1) {
39934 0 : i1 = i1 | 0;
39935 0 : var i2 = 0, d3 = 0.0;
39936 0 : i2 = STACKTOP;
39937 0 : d3 = +_luaL_checknumber(i1, 1);
39938 0 : _lua_pushnumber(i1, +Math_atan2(+d3, +(+_luaL_checknumber(i1, 2))));
39939 0 : STACKTOP = i2;
39940 0 : return 1;
39941 1 : }
39942 6 : function _luaK_codeABx(i4, i2, i3, i1) {
39943 6 : i4 = i4 | 0;
39944 6 : i2 = i2 | 0;
39945 6 : i3 = i3 | 0;
39946 6 : i1 = i1 | 0;
39947 6 : var i5 = 0;
39948 6 : i5 = STACKTOP;
39949 6 : i4 = _luaK_code(i4, i3 << 6 | i2 | i1 << 14) | 0;
39950 6 : STACKTOP = i5;
39951 6 : return i4 | 0;
39952 6 : }
39953 6 : function _luaF_newCclosure(i2, i1) {
39954 6 : i2 = i2 | 0;
39955 6 : i1 = i1 | 0;
39956 6 : var i3 = 0;
39957 6 : i3 = STACKTOP;
39958 6 : i2 = _luaC_newobj(i2, 38, (i1 << 4) + 16 | 0, 0, 0) | 0;
39959 6 : HEAP8[i2 + 6 | 0] = i1;
39960 6 : STACKTOP = i3;
39961 6 : return i2 | 0;
39962 6 : }
39963 1 : function _math_pow(i1) {
39964 0 : i1 = i1 | 0;
39965 0 : var i2 = 0, d3 = 0.0;
39966 0 : i2 = STACKTOP;
39967 0 : d3 = +_luaL_checknumber(i1, 1);
39968 0 : _lua_pushnumber(i1, +Math_pow(+d3, +(+_luaL_checknumber(i1, 2))));
39969 0 : STACKTOP = i2;
39970 0 : return 1;
39971 1 : }
39972 1 : function _math_ldexp(i1) {
39973 0 : i1 = i1 | 0;
39974 0 : var i2 = 0, d3 = 0.0;
39975 0 : i2 = STACKTOP;
39976 0 : d3 = +_luaL_checknumber(i1, 1);
39977 0 : _lua_pushnumber(i1, +_ldexp(d3, _luaL_checkinteger(i1, 2) | 0));
39978 0 : STACKTOP = i2;
39979 0 : return 1;
39980 1 : }
39981 1 : function _luaF_newupval(i1) {
39982 1 : i1 = i1 | 0;
39983 1 : var i2 = 0;
39984 1 : i2 = STACKTOP;
39985 1 : i1 = _luaC_newobj(i1, 10, 32, 0, 0) | 0;
39986 1 : HEAP32[i1 + 8 >> 2] = i1 + 16;
39987 1 : HEAP32[i1 + 24 >> 2] = 0;
39988 1 : STACKTOP = i2;
39989 1 : return i1 | 0;
39990 1 : }
39991 16 : function _lua_pushnumber(i2, d1) {
39992 16 : i2 = i2 | 0;
39993 16 : d1 = +d1;
39994 16 : var i3 = 0;
39995 16 : i2 = i2 + 8 | 0;
39996 16 : i3 = HEAP32[i2 >> 2] | 0;
39997 16 : HEAPF64[i3 >> 3] = d1;
39998 16 : HEAP32[i3 + 8 >> 2] = 3;
39999 16 : HEAP32[i2 >> 2] = i3 + 16;
40000 16 : return;
40001 16 : }
40002 1 : function _math_fmod(i1) {
40003 0 : i1 = i1 | 0;
40004 0 : var i2 = 0, d3 = 0.0;
40005 0 : i2 = STACKTOP;
40006 0 : d3 = +_luaL_checknumber(i1, 1);
40007 0 : _lua_pushnumber(i1, +_fmod(+d3, +(+_luaL_checknumber(i1, 2))));
40008 0 : STACKTOP = i2;
40009 0 : return 1;
40010 1 : }
40011 1 : function _luaG_concaterror(i3, i2, i1) {
40012 0 : i3 = i3 | 0;
40013 0 : i2 = i2 | 0;
40014 0 : i1 = i1 | 0;
40015 0 : var i4 = 0;
40016 0 : i4 = HEAP32[i2 + 8 >> 2] | 0;
40017 0 : _luaG_typeerror(i3, (i4 & 15 | 0) == 4 | (i4 | 0) == 3 ? i1 : i2, 1912);
40018 1 : }
40019 1 : function _luaB_rawequal(i1) {
40020 0 : i1 = i1 | 0;
40021 0 : var i2 = 0;
40022 0 : i2 = STACKTOP;
40023 0 : _luaL_checkany(i1, 1);
40024 0 : _luaL_checkany(i1, 2);
40025 0 : _lua_pushboolean(i1, _lua_rawequal(i1, 1, 2) | 0);
40026 0 : STACKTOP = i2;
40027 0 : return 1;
40028 1 : }
40029 1 : function _db_getuservalue(i1) {
40030 0 : i1 = i1 | 0;
40031 0 : var i2 = 0;
40032 0 : i2 = STACKTOP;
40033 0 : if ((_lua_type(i1, 1) | 0) == 7) {
40034 0 : _lua_getuservalue(i1, 1);
40035 0 : } else {
40036 0 : _lua_pushnil(i1);
40037 0 : }
40038 0 : STACKTOP = i2;
40039 0 : return 1;
40040 1 : }
40041 2 : function _strchr(i2, i1) {
40042 2 : i2 = i2 | 0;
40043 2 : i1 = i1 | 0;
40044 2 : var i3 = 0;
40045 2 : i3 = STACKTOP;
40046 2 : i2 = ___strchrnul(i2, i1) | 0;
40047 2 : STACKTOP = i3;
40048 2 : return ((HEAP8[i2] | 0) == (i1 & 255) << 24 >> 24 ? i2 : 0) | 0;
40049 2 : }
40050 1 : function runPostSets() {}
40051 1 : function _rand_r(i1) {
40052 0 : i1 = i1 | 0;
40053 0 : var i2 = 0;
40054 0 : i2 = (Math_imul(HEAP32[i1 >> 2] | 0, 31010991) | 0) + 1735287159 & 2147483647;
40055 0 : HEAP32[i1 >> 2] = i2;
40056 0 : return i2 | 0;
40057 1 : }
40058 1 : function _luaL_checkany(i1, i3) {
40059 0 : i1 = i1 | 0;
40060 0 : i3 = i3 | 0;
40061 0 : var i2 = 0;
40062 0 : i2 = STACKTOP;
40063 0 : if ((_lua_type(i1, i3) | 0) == -1) {
40064 0 : _luaL_argerror(i1, i3, 1256) | 0;
40065 0 : }
40066 0 : STACKTOP = i2;
40067 0 : return;
40068 1 : }
40069 1744 : function _i64Subtract(i2, i4, i1, i3) {
40070 1744 : i2 = i2 | 0;
40071 1744 : i4 = i4 | 0;
40072 1744 : i1 = i1 | 0;
40073 1744 : i3 = i3 | 0;
40074 1744 : i4 = i4 - i3 - (i1 >>> 0 > i2 >>> 0 | 0) >>> 0;
40075 1744 : return (tempRet0 = i4, i2 - i1 >>> 0 | 0) | 0;
40076 1744 : }
40077 1 : function _db_getmetatable(i1) {
40078 0 : i1 = i1 | 0;
40079 0 : var i2 = 0;
40080 0 : i2 = STACKTOP;
40081 0 : _luaL_checkany(i1, 1);
40082 0 : if ((_lua_getmetatable(i1, 1) | 0) == 0) {
40083 0 : _lua_pushnil(i1);
40084 0 : }
40085 0 : STACKTOP = i2;
40086 0 : return 1;
40087 1 : }
40088 1 : function _luaB_rawget(i1) {
40089 0 : i1 = i1 | 0;
40090 0 : var i2 = 0;
40091 0 : i2 = STACKTOP;
40092 0 : _luaL_checktype(i1, 1, 5);
40093 0 : _luaL_checkany(i1, 2);
40094 0 : _lua_settop(i1, 2);
40095 0 : _lua_rawget(i1, 1);
40096 0 : STACKTOP = i2;
40097 0 : return 1;
40098 1 : }
40099 1 : function _luaB_type(i1) {
40100 0 : i1 = i1 | 0;
40101 0 : var i2 = 0;
40102 0 : i2 = STACKTOP;
40103 0 : _luaL_checkany(i1, 1);
40104 0 : _lua_pushstring(i1, _lua_typename(i1, _lua_type(i1, 1) | 0) | 0) | 0;
40105 0 : STACKTOP = i2;
40106 0 : return 1;
40107 1 : }
40108 1 : function dynCall_iiiii(i5, i4, i3, i2, i1) {
40109 0 : i5 = i5 | 0;
40110 0 : i4 = i4 | 0;
40111 0 : i3 = i3 | 0;
40112 0 : i2 = i2 | 0;
40113 0 : i1 = i1 | 0;
40114 0 : return FUNCTION_TABLE_iiiii[i5 & 3](i4 | 0, i3 | 0, i2 | 0, i1 | 0) | 0;
40115 1 : }
40116 1 : function _lstop(i1, i2) {
40117 0 : i1 = i1 | 0;
40118 0 : i2 = i2 | 0;
40119 0 : i2 = STACKTOP;
40120 0 : STACKTOP = STACKTOP + 16 | 0;
40121 0 : _lua_sethook(i1, 0, 0, 0) | 0;
40122 0 : _luaL_error(i1, 200, i2) | 0;
40123 0 : STACKTOP = i2;
40124 0 : return;
40125 1 : }
40126 106 : function _i64Add(i1, i3, i4, i2) {
40127 106 : i1 = i1 | 0;
40128 106 : i3 = i3 | 0;
40129 106 : i4 = i4 | 0;
40130 106 : i2 = i2 | 0;
40131 106 : i4 = i1 + i4 >>> 0;
40132 106 : return (tempRet0 = i3 + i2 + (i4 >>> 0 < i1 >>> 0 | 0) >>> 0, i4 | 0) | 0;
40133 106 : }
40134 7 : function _luaK_ret(i3, i2, i1) {
40135 7 : i3 = i3 | 0;
40136 7 : i2 = i2 | 0;
40137 7 : i1 = i1 | 0;
40138 7 : var i4 = 0;
40139 7 : i4 = STACKTOP;
40140 7 : _luaK_code(i3, i2 << 6 | (i1 << 23) + 8388608 | 31) | 0;
40141 7 : STACKTOP = i4;
40142 7 : return;
40143 7 : }
40144 70 : function _strpbrk(i2, i1) {
40145 70 : i2 = i2 | 0;
40146 70 : i1 = i1 | 0;
40147 70 : var i3 = 0;
40148 70 : i3 = STACKTOP;
40149 70 : i1 = i2 + (_strcspn(i2, i1) | 0) | 0;
40150 70 : STACKTOP = i3;
40151 70 : return ((HEAP8[i1] | 0) != 0 ? i1 : 0) | 0;
40152 70 : }
40153 3 : function _luaL_setmetatable(i1, i2) {
40154 3 : i1 = i1 | 0;
40155 3 : i2 = i2 | 0;
40156 3 : var i3 = 0;
40157 3 : i3 = STACKTOP;
40158 3 : _lua_getfield(i1, -1001e3, i2);
40159 3 : _lua_setmetatable(i1, -2) | 0;
40160 3 : STACKTOP = i3;
40161 3 : return;
40162 3 : }
40163 1 : function _lua_atpanic(i2, i1) {
40164 1 : i2 = i2 | 0;
40165 1 : i1 = i1 | 0;
40166 1 : var i3 = 0;
40167 1 : i3 = (HEAP32[i2 + 12 >> 2] | 0) + 168 | 0;
40168 1 : i2 = HEAP32[i3 >> 2] | 0;
40169 1 : HEAP32[i3 >> 2] = i1;
40170 1 : return i2 | 0;
40171 1 : }
40172 1 : function _luaL_newstate() {
40173 1 : var i1 = 0, i2 = 0;
40174 1 : i2 = STACKTOP;
40175 1 : i1 = _lua_newstate(1, 0) | 0;
40176 1 : if ((i1 | 0) != 0) {
40177 1 : _lua_atpanic(i1, 143) | 0;
40178 1 : }
40179 1 : STACKTOP = i2;
40180 1 : return i1 | 0;
40181 1 : }
40182 5 : function _luaL_buffinit(i2, i1) {
40183 5 : i2 = i2 | 0;
40184 5 : i1 = i1 | 0;
40185 5 : HEAP32[i1 + 12 >> 2] = i2;
40186 5 : HEAP32[i1 >> 2] = i1 + 16;
40187 5 : HEAP32[i1 + 8 >> 2] = 0;
40188 5 : HEAP32[i1 + 4 >> 2] = 1024;
40189 5 : return;
40190 5 : }
40191 1 : function _strrchr(i1, i2) {
40192 0 : i1 = i1 | 0;
40193 0 : i2 = i2 | 0;
40194 0 : var i3 = 0;
40195 0 : i3 = STACKTOP;
40196 0 : i2 = ___memrchr(i1, i2, (_strlen(i1 | 0) | 0) + 1 | 0) | 0;
40197 0 : STACKTOP = i3;
40198 0 : return i2 | 0;
40199 1 : }
40200 21 : function _luaK_fixline(i1, i2) {
40201 21 : i1 = i1 | 0;
40202 21 : i2 = i2 | 0;
40203 21 : HEAP32[(HEAP32[(HEAP32[i1 >> 2] | 0) + 20 >> 2] | 0) + ((HEAP32[i1 + 20 >> 2] | 0) + -1 << 2) >> 2] = i2;
40204 21 : return;
40205 21 : }
40206 4 : function _luaX_lookahead(i1) {
40207 4 : i1 = i1 | 0;
40208 4 : var i2 = 0, i3 = 0;
40209 4 : i3 = STACKTOP;
40210 4 : i2 = _llex(i1, i1 + 40 | 0) | 0;
40211 4 : HEAP32[i1 + 32 >> 2] = i2;
40212 4 : STACKTOP = i3;
40213 4 : return i2 | 0;
40214 4 : }
40215 2 : function _f_call(i2, i1) {
40216 2 : i2 = i2 | 0;
40217 2 : i1 = i1 | 0;
40218 2 : var i3 = 0;
40219 2 : i3 = STACKTOP;
40220 2 : _luaD_call(i2, HEAP32[i1 >> 2] | 0, HEAP32[i1 + 4 >> 2] | 0, 0);
40221 2 : STACKTOP = i3;
40222 2 : return;
40223 2 : }
40224 1 : function _io_pclose(i1) {
40225 0 : i1 = i1 | 0;
40226 0 : var i2 = 0;
40227 0 : i2 = STACKTOP;
40228 0 : _luaL_checkudata(i1, 1, 2832) | 0;
40229 0 : i1 = _luaL_execresult(i1, -1) | 0;
40230 0 : STACKTOP = i2;
40231 0 : return i1 | 0;
40232 1 : }
40233 279 : function _luaS_new(i2, i1) {
40234 279 : i2 = i2 | 0;
40235 279 : i1 = i1 | 0;
40236 279 : var i3 = 0;
40237 279 : i3 = STACKTOP;
40238 279 : i2 = _luaS_newlstr(i2, i1, _strlen(i1 | 0) | 0) | 0;
40239 279 : STACKTOP = i3;
40240 279 : return i2 | 0;
40241 279 : }
40242 1 : function _os_getenv(i1) {
40243 0 : i1 = i1 | 0;
40244 0 : var i2 = 0;
40245 0 : i2 = STACKTOP;
40246 0 : _lua_pushstring(i1, _getenv(_luaL_checklstring(i1, 1, 0) | 0) | 0) | 0;
40247 0 : STACKTOP = i2;
40248 0 : return 1;
40249 1 : }
40250 1 : function _math_rad(i1) {
40251 0 : i1 = i1 | 0;
40252 0 : var i2 = 0;
40253 0 : i2 = STACKTOP;
40254 0 : _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) * .017453292519943295);
40255 0 : STACKTOP = i2;
40256 0 : return 1;
40257 1 : }
40258 1 : function _math_deg(i1) {
40259 0 : i1 = i1 | 0;
40260 0 : var i2 = 0;
40261 0 : i2 = STACKTOP;
40262 0 : _lua_pushnumber(i1, +_luaL_checknumber(i1, 1) / .017453292519943295);
40263 0 : STACKTOP = i2;
40264 0 : return 1;
40265 1 : }
40266 1 : function _writer(i4, i2, i1, i3) {
40267 0 : i4 = i4 | 0;
40268 0 : i2 = i2 | 0;
40269 0 : i1 = i1 | 0;
40270 0 : i3 = i3 | 0;
40271 0 : i4 = STACKTOP;
40272 0 : _luaL_addlstring(i3, i2, i1);
40273 0 : STACKTOP = i4;
40274 0 : return 0;
40275 1 : }
40276 1 : function _luaL_addstring(i2, i1) {
40277 0 : i2 = i2 | 0;
40278 0 : i1 = i1 | 0;
40279 0 : var i3 = 0;
40280 0 : i3 = STACKTOP;
40281 0 : _luaL_addlstring(i2, i1, _strlen(i1 | 0) | 0);
40282 0 : STACKTOP = i3;
40283 0 : return;
40284 1 : }
40285 1 : function _pcallcont(i1) {
40286 0 : i1 = i1 | 0;
40287 0 : var i2 = 0;
40288 0 : i2 = STACKTOP;
40289 0 : i1 = _finishpcall(i1, (_lua_getctx(i1, 0) | 0) == 1 | 0) | 0;
40290 0 : STACKTOP = i2;
40291 0 : return i1 | 0;
40292 1 : }
40293 1 : function _luaopen_coroutine(i1) {
40294 1 : i1 = i1 | 0;
40295 1 : var i2 = 0;
40296 1 : i2 = STACKTOP;
40297 1 : _lua_createtable(i1, 0, 6);
40298 1 : _luaL_setfuncs(i1, 10656, 0);
40299 1 : STACKTOP = i2;
40300 1 : return 1;
40301 1 : }
40302 27 : function _lua_version(i1) {
40303 27 : i1 = i1 | 0;
40304 27 : if ((i1 | 0) == 0) {
40305 27 : i1 = 920;
40306 27 : } else {
40307 27 : i1 = HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 176 >> 2] | 0;
40308 27 : }
40309 27 : return i1 | 0;
40310 27 : }
40311 3 : function _lua_pushnil(i1) {
40312 3 : i1 = i1 | 0;
40313 3 : var i2 = 0;
40314 3 : i1 = i1 + 8 | 0;
40315 3 : i2 = HEAP32[i1 >> 2] | 0;
40316 3 : HEAP32[i2 + 8 >> 2] = 0;
40317 3 : HEAP32[i1 >> 2] = i2 + 16;
40318 3 : return;
40319 3 : }
40320 1 : function _math_floor(i1) {
40321 0 : i1 = i1 | 0;
40322 0 : var i2 = 0;
40323 0 : i2 = STACKTOP;
40324 0 : _lua_pushnumber(i1, +Math_floor(+(+_luaL_checknumber(i1, 1))));
40325 0 : STACKTOP = i2;
40326 0 : return 1;
40327 1 : }
40328 1 : function _laction(i1) {
40329 0 : i1 = i1 | 0;
40330 0 : var i2 = 0;
40331 0 : i2 = STACKTOP;
40332 0 : _signal(i1 | 0, 0) | 0;
40333 0 : _lua_sethook(HEAP32[48] | 0, 1, 11, 1) | 0;
40334 0 : STACKTOP = i2;
40335 0 : return;
40336 1 : }
40337 1 : function dynCall_iiii(i4, i3, i2, i1) {
40338 0 : i4 = i4 | 0;
40339 0 : i3 = i3 | 0;
40340 0 : i2 = i2 | 0;
40341 0 : i1 = i1 | 0;
40342 0 : return FUNCTION_TABLE_iiii[i4 & 3](i3 | 0, i2 | 0, i1 | 0) | 0;
40343 1 : }
40344 1 : function _luaopen_debug(i1) {
40345 1 : i1 = i1 | 0;
40346 1 : var i2 = 0;
40347 1 : i2 = STACKTOP;
40348 1 : _lua_createtable(i1, 0, 16);
40349 1 : _luaL_setfuncs(i1, 11176, 0);
40350 1 : STACKTOP = i2;
40351 1 : return 1;
40352 1 : }
40353 1 : function _luaopen_bit32(i1) {
40354 1 : i1 = i1 | 0;
40355 1 : var i2 = 0;
40356 1 : i2 = STACKTOP;
40357 1 : _lua_createtable(i1, 0, 12);
40358 1 : _luaL_setfuncs(i1, 10240, 0);
40359 1 : STACKTOP = i2;
40360 1 : return 1;
40361 1 : }
40362 1 : function _math_sqrt(i1) {
40363 0 : i1 = i1 | 0;
40364 0 : var i2 = 0;
40365 0 : i2 = STACKTOP;
40366 0 : _lua_pushnumber(i1, +Math_sqrt(+(+_luaL_checknumber(i1, 1))));
40367 0 : STACKTOP = i2;
40368 0 : return 1;
40369 1 : }
40370 1 : function _math_ceil(i1) {
40371 0 : i1 = i1 | 0;
40372 0 : var i2 = 0;
40373 0 : i2 = STACKTOP;
40374 0 : _lua_pushnumber(i1, +Math_ceil(+(+_luaL_checknumber(i1, 1))));
40375 0 : STACKTOP = i2;
40376 0 : return 1;
40377 1 : }
40378 1 : function _math_atan(i1) {
40379 0 : i1 = i1 | 0;
40380 0 : var i2 = 0;
40381 0 : i2 = STACKTOP;
40382 0 : _lua_pushnumber(i1, +Math_atan(+(+_luaL_checknumber(i1, 1))));
40383 0 : STACKTOP = i2;
40384 0 : return 1;
40385 1 : }
40386 1 : function _math_asin(i1) {
40387 0 : i1 = i1 | 0;
40388 0 : var i2 = 0;
40389 0 : i2 = STACKTOP;
40390 0 : _lua_pushnumber(i1, +Math_asin(+(+_luaL_checknumber(i1, 1))));
40391 0 : STACKTOP = i2;
40392 0 : return 1;
40393 1 : }
40394 1 : function _math_acos(i1) {
40395 0 : i1 = i1 | 0;
40396 0 : var i2 = 0;
40397 0 : i2 = STACKTOP;
40398 0 : _lua_pushnumber(i1, +Math_acos(+(+_luaL_checknumber(i1, 1))));
40399 0 : STACKTOP = i2;
40400 0 : return 1;
40401 1 : }
40402 1 : function _lua_close(i1) {
40403 1 : i1 = i1 | 0;
40404 1 : var i2 = 0;
40405 1 : i2 = STACKTOP;
40406 1 : _close_state(HEAP32[(HEAP32[i1 + 12 >> 2] | 0) + 172 >> 2] | 0);
40407 1 : STACKTOP = i2;
40408 1 : return;
40409 1 : }
40410 4 : function _dothecall(i1, i2) {
40411 4 : i1 = i1 | 0;
40412 4 : i2 = i2 | 0;
40413 4 : i2 = STACKTOP;
40414 4 : _luaD_call(i1, (HEAP32[i1 + 8 >> 2] | 0) + -32 | 0, 0, 0);
40415 4 : STACKTOP = i2;
40416 4 : return;
40417 4 : }
40418 1 : function _math_tan(i1) {
40419 0 : i1 = i1 | 0;
40420 0 : var i2 = 0;
40421 0 : i2 = STACKTOP;
40422 0 : _lua_pushnumber(i1, +Math_tan(+(+_luaL_checknumber(i1, 1))));
40423 0 : STACKTOP = i2;
40424 0 : return 1;
40425 1 : }
40426 1 : function _math_sin(i1) {
40427 0 : i1 = i1 | 0;
40428 0 : var i2 = 0;
40429 0 : i2 = STACKTOP;
40430 0 : _lua_pushnumber(i1, +Math_sin(+(+_luaL_checknumber(i1, 1))));
40431 0 : STACKTOP = i2;
40432 0 : return 1;
40433 1 : }
40434 1 : function _math_log10(i1) {
40435 0 : i1 = i1 | 0;
40436 0 : var i2 = 0;
40437 0 : i2 = STACKTOP;
40438 0 : _lua_pushnumber(i1, +_log10(+(+_luaL_checknumber(i1, 1))));
40439 0 : STACKTOP = i2;
40440 0 : return 1;
40441 1 : }
40442 1 : function _math_exp(i1) {
40443 0 : i1 = i1 | 0;
40444 0 : var i2 = 0;
40445 0 : i2 = STACKTOP;
40446 0 : _lua_pushnumber(i1, +Math_exp(+(+_luaL_checknumber(i1, 1))));
40447 0 : STACKTOP = i2;
40448 0 : return 1;
40449 1 : }
40450 1 : function _math_cos(i1) {
40451 0 : i1 = i1 | 0;
40452 0 : var i2 = 0;
40453 0 : i2 = STACKTOP;
40454 0 : _lua_pushnumber(i1, +Math_cos(+(+_luaL_checknumber(i1, 1))));
40455 0 : STACKTOP = i2;
40456 0 : return 1;
40457 1 : }
40458 1 : function _math_abs(i1) {
40459 0 : i1 = i1 | 0;
40460 0 : var i2 = 0;
40461 0 : i2 = STACKTOP;
40462 0 : _lua_pushnumber(i1, +Math_abs(+(+_luaL_checknumber(i1, 1))));
40463 0 : STACKTOP = i2;
40464 0 : return 1;
40465 1 : }
40466 1 : function _math_randomseed(i1) {
40467 0 : i1 = i1 | 0;
40468 0 : var i2 = 0;
40469 0 : i2 = STACKTOP;
40470 0 : _srand(_luaL_checkunsigned(i1, 1) | 0);
40471 0 : _rand() | 0;
40472 0 : STACKTOP = i2;
40473 0 : return 0;
40474 1 : }
40475 1 : function _luaopen_os(i1) {
40476 1 : i1 = i1 | 0;
40477 1 : var i2 = 0;
40478 1 : i2 = STACKTOP;
40479 1 : _lua_createtable(i1, 0, 11);
40480 1 : _luaL_setfuncs(i1, 5624, 0);
40481 1 : STACKTOP = i2;
40482 1 : return 1;
40483 1 : }
40484 1 : function _math_tanh(i1) {
40485 0 : i1 = i1 | 0;
40486 0 : var i2 = 0;
40487 0 : i2 = STACKTOP;
40488 0 : _lua_pushnumber(i1, +_tanh(+(+_luaL_checknumber(i1, 1))));
40489 0 : STACKTOP = i2;
40490 0 : return 1;
40491 1 : }
40492 1 : function _math_sinh(i1) {
40493 0 : i1 = i1 | 0;
40494 0 : var i2 = 0;
40495 0 : i2 = STACKTOP;
40496 0 : _lua_pushnumber(i1, +_sinh(+(+_luaL_checknumber(i1, 1))));
40497 0 : STACKTOP = i2;
40498 0 : return 1;
40499 1 : }
40500 1 : function _math_cosh(i1) {
40501 0 : i1 = i1 | 0;
40502 0 : var i2 = 0;
40503 0 : i2 = STACKTOP;
40504 0 : _lua_pushnumber(i1, +_cosh(+(+_luaL_checknumber(i1, 1))));
40505 0 : STACKTOP = i2;
40506 0 : return 1;
40507 1 : }
40508 1 : function _luaB_yield(i1) {
40509 0 : i1 = i1 | 0;
40510 0 : var i2 = 0;
40511 0 : i2 = STACKTOP;
40512 0 : i1 = _lua_yieldk(i1, _lua_gettop(i1) | 0, 0, 0) | 0;
40513 0 : STACKTOP = i2;
40514 0 : return i1 | 0;
40515 1 : }
40516 1 : function _luaB_tostring(i1) {
40517 0 : i1 = i1 | 0;
40518 0 : var i2 = 0;
40519 0 : i2 = STACKTOP;
40520 0 : _luaL_checkany(i1, 1);
40521 0 : _luaL_tolstring(i1, 1, 0) | 0;
40522 0 : STACKTOP = i2;
40523 0 : return 1;
40524 1 : }
40525 1 : function _growstack(i2, i1) {
40526 0 : i2 = i2 | 0;
40527 0 : i1 = i1 | 0;
40528 0 : var i3 = 0;
40529 0 : i3 = STACKTOP;
40530 0 : _luaD_growstack(i2, HEAP32[i1 >> 2] | 0);
40531 0 : STACKTOP = i3;
40532 0 : return;
40533 1 : }
40534 24 : function ___udivdi3(i4, i3, i2, i1) {
40535 24 : i4 = i4 | 0;
40536 24 : i3 = i3 | 0;
40537 24 : i2 = i2 | 0;
40538 24 : i1 = i1 | 0;
40539 24 : i4 = ___udivmoddi4(i4, i3, i2, i1, 0) | 0;
40540 24 : return i4 | 0;
40541 24 : }
40542 1 : function _b_not(i1) {
40543 0 : i1 = i1 | 0;
40544 0 : var i2 = 0;
40545 0 : i2 = STACKTOP;
40546 0 : _lua_pushunsigned(i1, ~(_luaL_checkunsigned(i1, 1) | 0));
40547 0 : STACKTOP = i2;
40548 0 : return 1;
40549 1 : }
40550 285988 : function _luaO_fb2int(i1) {
40551 285988 : i1 = i1 | 0;
40552 285988 : var i2 = 0;
40553 285988 : i2 = i1 >>> 3 & 31;
40554 285988 : if ((i2 | 0) != 0) {
40555 285988 : i1 = (i1 & 7 | 8) << i2 + -1;
40556 285988 : }
40557 285988 : return i1 | 0;
40558 285988 : }
40559 1 : function _luaB_corunning(i1) {
40560 0 : i1 = i1 | 0;
40561 0 : var i2 = 0;
40562 0 : i2 = STACKTOP;
40563 0 : _lua_pushboolean(i1, _lua_pushthread(i1) | 0);
40564 0 : STACKTOP = i2;
40565 0 : return 2;
40566 1 : }
40567 1 : function stackAlloc(i1) {
40568 1 : i1 = i1 | 0;
40569 1 : var i2 = 0;
40570 1 : i2 = STACKTOP;
40571 1 : STACKTOP = STACKTOP + i1 | 0;
40572 1 : STACKTOP = STACKTOP + 7 & -8;
40573 1 : return i2 | 0;
40574 1 : }
40575 1 : function _strcoll(i2, i1) {
40576 0 : i2 = i2 | 0;
40577 0 : i1 = i1 | 0;
40578 0 : var i3 = 0;
40579 0 : i3 = STACKTOP;
40580 0 : i2 = _strcmp(i2, i1) | 0;
40581 0 : STACKTOP = i3;
40582 0 : return i2 | 0;
40583 1 : }
40584 1 : function _os_clock(i1) {
40585 0 : i1 = i1 | 0;
40586 0 : var i2 = 0;
40587 0 : i2 = STACKTOP;
40588 0 : _lua_pushnumber(i1, +(_clock() | 0) / 1.0e6);
40589 0 : STACKTOP = i2;
40590 0 : return 1;
40591 1 : }
40592 1 : function _dofilecont(i1) {
40593 0 : i1 = i1 | 0;
40594 0 : var i2 = 0;
40595 0 : i2 = STACKTOP;
40596 0 : i1 = (_lua_gettop(i1) | 0) + -1 | 0;
40597 0 : STACKTOP = i2;
40598 0 : return i1 | 0;
40599 1 : }
40600 5 : function _scalbnl(d2, i1) {
40601 5 : d2 = +d2;
40602 5 : i1 = i1 | 0;
40603 5 : var i3 = 0;
40604 5 : i3 = STACKTOP;
40605 5 : d2 = +_scalbn(d2, i1);
40606 5 : STACKTOP = i3;
40607 5 : return +d2;
40608 5 : }
40609 1 : function _tolower(i1) {
40610 0 : i1 = i1 | 0;
40611 0 : if ((i1 | 0) < 65) return i1 | 0;
40612 0 : if ((i1 | 0) > 90) return i1 | 0;
40613 0 : return i1 - 65 + 97 | 0;
40614 1 : }
40615 12 : function _lua_gettop(i1) {
40616 12 : i1 = i1 | 0;
40617 12 : return (HEAP32[i1 + 8 >> 2] | 0) - ((HEAP32[HEAP32[i1 + 16 >> 2] >> 2] | 0) + 16) >> 4 | 0;
40618 12 : }
40619 1 : function dynCall_iii(i3, i2, i1) {
40620 0 : i3 = i3 | 0;
40621 0 : i2 = i2 | 0;
40622 0 : i1 = i1 | 0;
40623 0 : return FUNCTION_TABLE_iii[i3 & 1](i2 | 0, i1 | 0) | 0;
40624 1 : }
40625 1 : function _str_match(i1) {
40626 0 : i1 = i1 | 0;
40627 0 : var i2 = 0;
40628 0 : i2 = STACKTOP;
40629 0 : i1 = _str_find_aux(i1, 0) | 0;
40630 0 : STACKTOP = i2;
40631 0 : return i1 | 0;
40632 1 : }
40633 1 : function _luaM_toobig(i1) {
40634 0 : i1 = i1 | 0;
40635 0 : var i2 = 0;
40636 0 : i2 = STACKTOP;
40637 0 : STACKTOP = STACKTOP + 16 | 0;
40638 0 : _luaG_runerror(i1, 4144, i2);
40639 1 : }
40640 1 : function _luaK_getlabel(i1) {
40641 0 : i1 = i1 | 0;
40642 0 : var i2 = 0;
40643 0 : i2 = HEAP32[i1 + 20 >> 2] | 0;
40644 0 : HEAP32[i1 + 24 >> 2] = i2;
40645 0 : return i2 | 0;
40646 1 : }
40647 1 : function _ldexp(d2, i1) {
40648 0 : d2 = +d2;
40649 0 : i1 = i1 | 0;
40650 0 : var i3 = 0;
40651 0 : i3 = STACKTOP;
40652 0 : d2 = +_scalbn(d2, i1);
40653 0 : STACKTOP = i3;
40654 0 : return +d2;
40655 1 : }
40656 1 : function _str_find(i1) {
40657 0 : i1 = i1 | 0;
40658 0 : var i2 = 0;
40659 0 : i2 = STACKTOP;
40660 0 : i1 = _str_find_aux(i1, 1) | 0;
40661 0 : STACKTOP = i2;
40662 0 : return i1 | 0;
40663 1 : }
40664 1 : function _db_getregistry(i1) {
40665 0 : i1 = i1 | 0;
40666 0 : var i2 = 0;
40667 0 : i2 = STACKTOP;
40668 0 : _lua_pushvalue(i1, -1001e3);
40669 0 : STACKTOP = i2;
40670 0 : return 1;
40671 1 : }
40672 1 : function _luaB_ipairs(i1) {
40673 0 : i1 = i1 | 0;
40674 0 : var i2 = 0;
40675 0 : i2 = STACKTOP;
40676 0 : _pairsmeta(i1, 9960, 1, 165);
40677 0 : STACKTOP = i2;
40678 0 : return 3;
40679 1 : }
40680 294 : function _strlen(i1) {
40681 294 : i1 = i1 | 0;
40682 294 : var i2 = 0;
40683 294 : i2 = i1;
40684 294 : while (HEAP8[i2] | 0) {
40685 294 : i2 = i2 + 1 | 0;
40686 294 : }
40687 294 : return i2 - i1 | 0;
40688 294 : }
40689 1 : function _luaB_pairs(i1) {
40690 0 : i1 = i1 | 0;
40691 0 : var i2 = 0;
40692 0 : i2 = STACKTOP;
40693 0 : _pairsmeta(i1, 9864, 0, 93);
40694 0 : STACKTOP = i2;
40695 0 : return 3;
40696 1 : }
40697 1 : function setThrew(i1, i2) {
40698 0 : i1 = i1 | 0;
40699 0 : i2 = i2 | 0;
40700 0 : if ((__THREW__ | 0) == 0) {
40701 0 : __THREW__ = i1;
40702 0 : threwValue = i2;
40703 0 : }
40704 1 : }
40705 1 : function _io_output(i1) {
40706 0 : i1 = i1 | 0;
40707 0 : var i2 = 0;
40708 0 : i2 = STACKTOP;
40709 0 : _g_iofile(i1, 2800, 3512);
40710 0 : STACKTOP = i2;
40711 0 : return 1;
40712 1 : }
40713 8 : function dynCall_vii(i3, i2, i1) {
40714 8 : i3 = i3 | 0;
40715 8 : i2 = i2 | 0;
40716 8 : i1 = i1 | 0;
40717 8 : FUNCTION_TABLE_vii[i3 & 15](i2 | 0, i1 | 0);
40718 8 : }
40719 1 : function _io_input(i1) {
40720 0 : i1 = i1 | 0;
40721 0 : var i2 = 0;
40722 0 : i2 = STACKTOP;
40723 0 : _g_iofile(i1, 2776, 3480);
40724 0 : STACKTOP = i2;
40725 0 : return 1;
40726 1 : }
40727 1 : function _semerror(i2, i1) {
40728 0 : i2 = i2 | 0;
40729 0 : i1 = i1 | 0;
40730 0 : HEAP32[i2 + 16 >> 2] = 0;
40731 0 : _luaX_syntaxerror(i2, i1);
40732 1 : }
40733 1 : function _luaX_syntaxerror(i1, i2) {
40734 0 : i1 = i1 | 0;
40735 0 : i2 = i2 | 0;
40736 0 : _lexerror(i1, i2, HEAP32[i1 + 16 >> 2] | 0);
40737 1 : }
40738 1 : function b4(i1, i2, i3, i4) {
40739 0 : i1 = i1 | 0;
40740 0 : i2 = i2 | 0;
40741 0 : i3 = i3 | 0;
40742 0 : i4 = i4 | 0;
40743 0 : abort(4);
40744 0 : return 0;
40745 1 : }
40746 1 : function _lua_typename(i2, i1) {
40747 0 : i2 = i2 | 0;
40748 0 : i1 = i1 | 0;
40749 0 : return HEAP32[8528 + (i1 + 1 << 2) >> 2] | 0;
40750 1 : }
40751 1 : function dynCall_ii(i2, i1) {
40752 0 : i2 = i2 | 0;
40753 0 : i1 = i1 | 0;
40754 0 : return FUNCTION_TABLE_ii[i2 & 255](i1 | 0) | 0;
40755 1 : }
40756 1 : function dynCall_vi(i2, i1) {
40757 0 : i2 = i2 | 0;
40758 0 : i1 = i1 | 0;
40759 0 : FUNCTION_TABLE_vi[i2 & 1](i1 | 0);
40760 1 : }
40761 1 : function b0(i1, i2, i3) {
40762 0 : i1 = i1 | 0;
40763 0 : i2 = i2 | 0;
40764 0 : i3 = i3 | 0;
40765 0 : abort(0);
40766 0 : return 0;
40767 1 : }
40768 1 : function _lua_gethookmask(i1) {
40769 0 : i1 = i1 | 0;
40770 0 : return HEAPU8[i1 + 40 | 0] | 0 | 0;
40771 1 : }
40772 1 : function _lua_gethookcount(i1) {
40773 0 : i1 = i1 | 0;
40774 0 : return HEAP32[i1 + 44 >> 2] | 0;
40775 1 : }
40776 1 : function _lua_status(i1) {
40777 0 : i1 = i1 | 0;
40778 0 : return HEAPU8[i1 + 6 | 0] | 0 | 0;
40779 1 : }
40780 1 : function _lua_gethook(i1) {
40781 0 : i1 = i1 | 0;
40782 0 : return HEAP32[i1 + 52 >> 2] | 0;
40783 1 : }
40784 1 : function b5(i1, i2) {
40785 0 : i1 = i1 | 0;
40786 0 : i2 = i2 | 0;
40787 0 : abort(5);
40788 0 : return 0;
40789 1 : }
40790 1 : function _lua_error(i1) {
40791 0 : i1 = i1 | 0;
40792 0 : _luaG_errormsg(i1);
40793 0 : return 0;
40794 1 : }
40795 1 : function b2(i1, i2) {
40796 0 : i1 = i1 | 0;
40797 0 : i2 = i2 | 0;
40798 0 : abort(2);
40799 1 : }
40800 1 : function stackRestore(i1) {
40801 0 : i1 = i1 | 0;
40802 0 : STACKTOP = i1;
40803 1 : }
40804 1 : function setTempRet9(i1) {
40805 0 : i1 = i1 | 0;
40806 0 : tempRet9 = i1;
40807 1 : }
40808 1 : function setTempRet8(i1) {
40809 0 : i1 = i1 | 0;
40810 0 : tempRet8 = i1;
40811 1 : }
40812 1 : function setTempRet7(i1) {
40813 0 : i1 = i1 | 0;
40814 0 : tempRet7 = i1;
40815 1 : }
40816 1 : function setTempRet6(i1) {
40817 0 : i1 = i1 | 0;
40818 0 : tempRet6 = i1;
40819 1 : }
40820 1 : function setTempRet5(i1) {
40821 0 : i1 = i1 | 0;
40822 0 : tempRet5 = i1;
40823 1 : }
40824 1 : function setTempRet4(i1) {
40825 0 : i1 = i1 | 0;
40826 0 : tempRet4 = i1;
40827 1 : }
40828 1 : function setTempRet3(i1) {
40829 0 : i1 = i1 | 0;
40830 0 : tempRet3 = i1;
40831 1 : }
40832 1 : function setTempRet2(i1) {
40833 0 : i1 = i1 | 0;
40834 0 : tempRet2 = i1;
40835 1 : }
40836 1 : function setTempRet1(i1) {
40837 0 : i1 = i1 | 0;
40838 0 : tempRet1 = i1;
40839 1 : }
40840 1 : function setTempRet0(i1) {
40841 0 : i1 = i1 | 0;
40842 0 : tempRet0 = i1;
40843 1 : }
40844 1 : function b3(i1) {
40845 0 : i1 = i1 | 0;
40846 0 : abort(3);
40847 0 : return 0;
40848 1 : }
40849 1 : function _rand() {
40850 0 : return _rand_r(___rand_seed) | 0;
40851 1 : }
40852 1 : function stackSave() {
40853 0 : return STACKTOP | 0;
40854 1 : }
40855 1 : function b1(i1) {
40856 0 : i1 = i1 | 0;
40857 0 : abort(1);
40858 1 : }
40859 1 :
40860 1 : // EMSCRIPTEN_END_FUNCS
40861 1 : var FUNCTION_TABLE_iiii = [b0,_getF,_getS,_generic_reader];
40862 1 : var FUNCTION_TABLE_vi = [b1,_laction];
40863 1 : var FUNCTION_TABLE_vii = [b2,_lstop,_growstack,_f_call,_resume,_unroll,_f_parser,_dothecall,_f_luaopen,_hookf,b2,b2,b2,b2,b2,b2];
40864 1 : var FUNCTION_TABLE_ii = [b3,_io_close,_io_flush,_io_input,_io_lines,_io_open,_io_output,_io_popen,_io_read,_io_tmpfile,_io_type,_io_write,_f_flush,_f_lines,_f_read,_f_seek,_f_setvbuf,_f_write,_f_gc,_f_tostring,_math_abs,_math_acos,_math_asin,_math_atan2,_math_atan,_math_ceil,_math_cosh,_math_cos,_math_deg
40865 1 : ,_math_exp,_math_floor,_math_fmod,_math_frexp,_math_ldexp,_math_log10,_math_log,_math_max,_math_min,_math_modf,_math_pow,_math_rad,_math_random,_math_randomseed,_math_sinh,_math_sin,_math_sqrt,_math_tanh,_math_tan,_ll_loadlib,_ll_searchpath,_ll_seeall,_ll_module,_ll_require,_os_clock,_os_date,_os_difftime,_os_execute,_os_exit,_os_getenv
40866 1 : ,_os_remove,_os_rename,_os_setlocale,_os_time,_os_tmpname,_str_byte,_str_char,_str_dump,_str_find,_str_format,_gmatch,_str_gsub,_str_len,_str_lower,_str_match,_str_rep,_str_reverse,_str_sub,_str_upper,_tconcat,_maxn,_tinsert,_pack,_unpack,_tremove,_sort,_luaB_assert,_luaB_collectgarbage,_luaB_dofile,_luaB_error
40867 1 : ,_luaB_getmetatable,_luaB_ipairs,_luaB_loadfile,_luaB_load,_luaB_next,_luaB_pairs,_luaB_pcall,_luaB_print,_luaB_rawequal,_luaB_rawlen,_luaB_rawget,_luaB_rawset,_luaB_select,_luaB_setmetatable,_luaB_tonumber,_luaB_tostring,_luaB_type,_luaB_xpcall,_b_arshift,_b_and,_b_not,_b_or,_b_xor,_b_test,_b_extract,_b_lrot,_b_lshift,_b_replace,_b_rrot,_b_rshift
40868 1 : ,_luaB_cocreate,_luaB_coresume,_luaB_corunning,_luaB_costatus,_luaB_cowrap,_luaB_yield,_db_debug,_db_getuservalue,_db_gethook,_db_getinfo,_db_getlocal,_db_getregistry,_db_getmetatable,_db_getupvalue,_db_upvaluejoin,_db_upvalueid,_db_setuservalue,_db_sethook,_db_setlocal,_db_setmetatable,_db_setupvalue,_db_traceback,_pmain,_traceback,_panic,_luaopen_base,_luaopen_package,_luaopen_coroutine,_luaopen_table,_luaopen_io
40869 1 : ,_luaopen_os,_luaopen_string,_luaopen_bit32,_luaopen_math,_luaopen_debug,_io_noclose,_io_readline,_io_fclose,_io_pclose,_gctm,_searcher_preload,_searcher_Lua,_searcher_C,_searcher_Croot,_gmatch_aux,_dofilecont,_ipairsaux,_pcallcont,_luaB_auxwrap,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
40870 1 : ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
40871 1 : ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3
40872 1 : ,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3,b3];
40873 1 : var FUNCTION_TABLE_iiiii = [b4,_l_alloc,_writer,b4];
40874 1 : var FUNCTION_TABLE_iii = [b5,_lua_newstate];
40875 1 :
40876 1 : return { _testSetjmp: _testSetjmp, _i64Subtract: _i64Subtract, _free: _free, _main: _main, _rand_r: _rand_r, _realloc: _realloc, _i64Add: _i64Add, _tolower: _tolower, _saveSetjmp: _saveSetjmp, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _strlen: _strlen, _rand: _rand, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, setThrew: setThrew, setTempRet0: setTempRet0, setTempRet1: setTempRet1, setTempRet2: setTempRet2, setTempRet3: setTempRet3, setTempRet4: setTempRet4, setTempRet5: setTempRet5, setTempRet6: setTempRet6, setTempRet7: setTempRet7, setTempRet8: setTempRet8, setTempRet9: setTempRet9, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, dynCall_vii: dynCall_vii, dynCall_ii: dynCall_ii, dynCall_iiiii: dynCall_iiiii, dynCall_iii: dynCall_iii };
40877 1 : })
40878 1 : // EMSCRIPTEN_END_ASM
40879 1 : ({ "Math": Math, "Int8Array": Int8Array, "Int16Array": Int16Array, "Int32Array": Int32Array, "Uint8Array": Uint8Array, "Uint16Array": Uint16Array, "Uint32Array": Uint32Array, "Float32Array": Float32Array, "Float64Array": Float64Array }, { "abort": abort, "assert": assert, "asmPrintInt": asmPrintInt, "asmPrintFloat": asmPrintFloat, "min": Math_min, "invoke_iiii": invoke_iiii, "invoke_vi": invoke_vi, "invoke_vii": invoke_vii, "invoke_ii": invoke_ii, "invoke_iiiii": invoke_iiiii, "invoke_iii": invoke_iii, "_isalnum": _isalnum, "_fabs": _fabs, "_frexp": _frexp, "_exp": _exp, "_fread": _fread, "__reallyNegative": __reallyNegative, "_longjmp": _longjmp, "__addDays": __addDays, "_fsync": _fsync, "_signal": _signal, "_rename": _rename, "_sbrk": _sbrk, "_emscripten_memcpy_big": _emscripten_memcpy_big, "_sinh": _sinh, "_sysconf": _sysconf, "_close": _close, "_ferror": _ferror, "_clock": _clock, "_cos": _cos, "_tanh": _tanh, "_unlink": _unlink, "_write": _write, "__isLeapYear": __isLeapYear, "_ftell": _ftell, "_isupper": _isupper, "_gmtime_r": _gmtime_r, "_islower": _islower, "_tmpnam": _tmpnam, "_tmpfile": _tmpfile, "_send": _send, "_abort": _abort, "_setvbuf": _setvbuf, "_atan2": _atan2, "_setlocale": _setlocale, "_isgraph": _isgraph, "_modf": _modf, "_strerror_r": _strerror_r, "_fscanf": _fscanf, "___setErrNo": ___setErrNo, "_isalpha": _isalpha, "_srand": _srand, "_mktime": _mktime, "_putchar": _putchar, "_gmtime": _gmtime, "_localeconv": _localeconv, "_sprintf": _sprintf, "_localtime": _localtime, "_read": _read, "_fwrite": _fwrite, "_time": _time, "_fprintf": _fprintf, "_exit": _exit, "_freopen": _freopen, "_llvm_pow_f64": _llvm_pow_f64, "_fgetc": _fgetc, "_fmod": _fmod, "_lseek": _lseek, "_rmdir": _rmdir, "_asin": _asin, "_floor": _floor, "_pwrite": _pwrite, "_localtime_r": _localtime_r, "_tzset": _tzset, "_open": _open, "_remove": _remove, "_snprintf": _snprintf, "__scanString": __scanString, "_strftime": _strftime, "_fseek": _fseek, "_iscntrl": _iscntrl, "_isxdigit": _isxdigit, "_fclose": _fclose, "_log": _log, "_recv": _recv, "_tan": _tan, "_copysign": _copysign, "__getFloat": __getFloat, "_fputc": _fputc, "_ispunct": _ispunct, "_ceil": _ceil, "_isspace": _isspace, "_fopen": _fopen, "_sin": _sin, "_acos": _acos, "_cosh": _cosh, "___buildEnvironment": ___buildEnvironment, "_difftime": _difftime, "_ungetc": _ungetc, "_system": _system, "_fflush": _fflush, "_log10": _log10, "_fileno": _fileno, "__exit": __exit, "__arraySum": __arraySum, "_fgets": _fgets, "_atan": _atan, "_pread": _pread, "_mkport": _mkport, "_toupper": _toupper, "_feof": _feof, "___errno_location": ___errno_location, "_clearerr": _clearerr, "_getenv": _getenv, "_strerror": _strerror, "_emscripten_longjmp": _emscripten_longjmp, "__formatString": __formatString, "_fputs": _fputs, "_sqrt": _sqrt, "STACKTOP": STACKTOP, "STACK_MAX": STACK_MAX, "tempDoublePtr": tempDoublePtr, "ABORT": ABORT, "cttz_i8": cttz_i8, "ctlz_i8": ctlz_i8, "___rand_seed": ___rand_seed, "NaN": NaN, "Infinity": Infinity, "_stderr": _stderr, "_stdin": _stdin, "_stdout": _stdout }, buffer);
40880 1 : var _testSetjmp = Module["_testSetjmp"] = asm["_testSetjmp"];
40881 1 : var _i64Subtract = Module["_i64Subtract"] = asm["_i64Subtract"];
40882 1 : var _free = Module["_free"] = asm["_free"];
40883 1 : var _main = Module["_main"] = asm["_main"];
40884 1 : var _rand_r = Module["_rand_r"] = asm["_rand_r"];
40885 1 : var _realloc = Module["_realloc"] = asm["_realloc"];
40886 1 : var _i64Add = Module["_i64Add"] = asm["_i64Add"];
40887 1 : var _tolower = Module["_tolower"] = asm["_tolower"];
40888 1 : var _saveSetjmp = Module["_saveSetjmp"] = asm["_saveSetjmp"];
40889 1 : var _memset = Module["_memset"] = asm["_memset"];
40890 1 : var _malloc = Module["_malloc"] = asm["_malloc"];
40891 1 : var _memcpy = Module["_memcpy"] = asm["_memcpy"];
40892 1 : var _strlen = Module["_strlen"] = asm["_strlen"];
40893 1 : var _rand = Module["_rand"] = asm["_rand"];
40894 1 : var _bitshift64Shl = Module["_bitshift64Shl"] = asm["_bitshift64Shl"];
40895 1 : var runPostSets = Module["runPostSets"] = asm["runPostSets"];
40896 1 : var dynCall_iiii = Module["dynCall_iiii"] = asm["dynCall_iiii"];
40897 1 : var dynCall_vi = Module["dynCall_vi"] = asm["dynCall_vi"];
40898 1 : var dynCall_vii = Module["dynCall_vii"] = asm["dynCall_vii"];
40899 1 : var dynCall_ii = Module["dynCall_ii"] = asm["dynCall_ii"];
40900 1 : var dynCall_iiiii = Module["dynCall_iiiii"] = asm["dynCall_iiiii"];
40901 1 : var dynCall_iii = Module["dynCall_iii"] = asm["dynCall_iii"];
40902 1 :
40903 1 : Runtime.stackAlloc = function(size) { return asm['stackAlloc'](size) };
40904 1 : Runtime.stackSave = function() { return asm['stackSave']() };
40905 1 : Runtime.stackRestore = function(top) { asm['stackRestore'](top) };
40906 1 :
40907 1 :
40908 1 : // TODO: strip out parts of this we do not need
40909 1 :
40910 1 : //======= begin closure i64 code =======
40911 1 :
40912 1 : // Copyright 2009 The Closure Library Authors. All Rights Reserved.
40913 1 : //
40914 1 : // Licensed under the Apache License, Version 2.0 (the "License");
40915 1 : // you may not use this file except in compliance with the License.
40916 1 : // You may obtain a copy of the License at
40917 1 : //
40918 1 : // http://www.apache.org/licenses/LICENSE-2.0
40919 1 : //
40920 1 : // Unless required by applicable law or agreed to in writing, software
40921 1 : // distributed under the License is distributed on an "AS-IS" BASIS,
40922 1 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
40923 1 : // See the License for the specific language governing permissions and
40924 1 : // limitations under the License.
40925 1 :
40926 1 : /**
40927 1 : * @fileoverview Defines a Long class for representing a 64-bit two's-complement
40928 1 : * integer value, which faithfully simulates the behavior of a Java "long". This
40929 1 : * implementation is derived from LongLib in GWT.
40930 1 : *
40931 1 : */
40932 1 :
40933 1 : var i64Math = (function() { // Emscripten wrapper
40934 1 : var goog = { math: {} };
40935 1 :
40936 1 :
40937 1 : /**
40938 1 : * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
40939 1 : * values as *signed* integers. See the from* functions below for more
40940 1 : * convenient ways of constructing Longs.
40941 1 : *
40942 1 : * The internal representation of a long is the two given signed, 32-bit values.
40943 1 : * We use 32-bit pieces because these are the size of integers on which
40944 1 : * Javascript performs bit-operations. For operations like addition and
40945 1 : * multiplication, we split each number into 16-bit pieces, which can easily be
40946 1 : * multiplied within Javascript's floating-point representation without overflow
40947 1 : * or change in sign.
40948 1 : *
40949 1 : * In the algorithms below, we frequently reduce the negative case to the
40950 1 : * positive case by negating the input(s) and then post-processing the result.
40951 1 : * Note that we must ALWAYS check specially whether those values are MIN_VALUE
40952 1 : * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
40953 1 : * a positive number, it overflows back into a negative). Not handling this
40954 1 : * case would often result in infinite recursion.
40955 1 : *
40956 1 : * @param {number} low The low (signed) 32 bits of the long.
40957 1 : * @param {number} high The high (signed) 32 bits of the long.
40958 1 : * @constructor
40959 1 : */
40960 6 : goog.math.Long = function(low, high) {
40961 6 : /**
40962 6 : * @type {number}
40963 6 : * @private
40964 6 : */
40965 6 : this.low_ = low | 0; // force into 32 signed bits.
40966 6 :
40967 6 : /**
40968 6 : * @type {number}
40969 6 : * @private
40970 6 : */
40971 6 : this.high_ = high | 0; // force into 32 signed bits.
40972 6 : };
40973 1 :
40974 1 :
40975 1 : // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
40976 1 : // from* methods on which they depend.
40977 1 :
40978 1 :
40979 1 : /**
40980 1 : * A cache of the Long representations of small integer values.
40981 1 : * @type {!Object}
40982 1 : * @private
40983 1 : */
40984 1 : goog.math.Long.IntCache_ = {};
40985 1 :
40986 1 :
40987 1 : /**
40988 1 : * Returns a Long representing the given (32-bit) integer value.
40989 1 : * @param {number} value The 32-bit integer in question.
40990 1 : * @return {!goog.math.Long} The corresponding Long value.
40991 1 : */
40992 4 : goog.math.Long.fromInt = function(value) {
40993 4 : if (-128 <= value && value < 128) {
40994 4 : var cachedObj = goog.math.Long.IntCache_[value];
40995 4 : if (cachedObj) {
40996 4 : return cachedObj;
40997 4 : }
40998 4 : }
40999 4 :
41000 4 : var obj = new goog.math.Long(value | 0, value < 0 ? -1 : 0);
41001 4 : if (-128 <= value && value < 128) {
41002 4 : goog.math.Long.IntCache_[value] = obj;
41003 4 : }
41004 4 : return obj;
41005 4 : };
41006 1 :
41007 1 :
41008 1 : /**
41009 1 : * Returns a Long representing the given value, provided that it is a finite
41010 1 : * number. Otherwise, zero is returned.
41011 1 : * @param {number} value The number in question.
41012 1 : * @return {!goog.math.Long} The corresponding Long value.
41013 1 : */
41014 1 : goog.math.Long.fromNumber = function(value) {
41015 0 : if (isNaN(value) || !isFinite(value)) {
41016 0 : return goog.math.Long.ZERO;
41017 0 : } else if (value <= -goog.math.Long.TWO_PWR_63_DBL_) {
41018 0 : return goog.math.Long.MIN_VALUE;
41019 0 : } else if (value + 1 >= goog.math.Long.TWO_PWR_63_DBL_) {
41020 0 : return goog.math.Long.MAX_VALUE;
41021 0 : } else if (value < 0) {
41022 0 : return goog.math.Long.fromNumber(-value).negate();
41023 0 : } else {
41024 0 : return new goog.math.Long(
41025 0 : (value % goog.math.Long.TWO_PWR_32_DBL_) | 0,
41026 0 : (value / goog.math.Long.TWO_PWR_32_DBL_) | 0);
41027 0 : }
41028 1 : };
41029 1 :
41030 1 :
41031 1 : /**
41032 1 : * Returns a Long representing the 64-bit integer that comes by concatenating
41033 1 : * the given high and low bits. Each is assumed to use 32 bits.
41034 1 : * @param {number} lowBits The low 32-bits.
41035 1 : * @param {number} highBits The high 32-bits.
41036 1 : * @return {!goog.math.Long} The corresponding Long value.
41037 1 : */
41038 2 : goog.math.Long.fromBits = function(lowBits, highBits) {
41039 2 : return new goog.math.Long(lowBits, highBits);
41040 2 : };
41041 1 :
41042 1 :
41043 1 : /**
41044 1 : * Returns a Long representation of the given string, written using the given
41045 1 : * radix.
41046 1 : * @param {string} str The textual representation of the Long.
41047 1 : * @param {number=} opt_radix The radix in which the text is written.
41048 1 : * @return {!goog.math.Long} The corresponding Long value.
41049 1 : */
41050 1 : goog.math.Long.fromString = function(str, opt_radix) {
41051 0 : if (str.length == 0) {
41052 0 : throw Error('number format error: empty string');
41053 0 : }
41054 0 :
41055 0 : var radix = opt_radix || 10;
41056 0 : if (radix < 2 || 36 < radix) {
41057 0 : throw Error('radix out of range: ' + radix);
41058 0 : }
41059 0 :
41060 0 : if (str.charAt(0) == '-') {
41061 0 : return goog.math.Long.fromString(str.substring(1), radix).negate();
41062 0 : } else if (str.indexOf('-') >= 0) {
41063 0 : throw Error('number format error: interior "-" character: ' + str);
41064 0 : }
41065 0 :
41066 0 : // Do several (8) digits each time through the loop, so as to
41067 0 : // minimize the calls to the very expensive emulated div.
41068 0 : var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 8));
41069 0 :
41070 0 : var result = goog.math.Long.ZERO;
41071 0 : for (var i = 0; i < str.length; i += 8) {
41072 0 : var size = Math.min(8, str.length - i);
41073 0 : var value = parseInt(str.substring(i, i + size), radix);
41074 0 : if (size < 8) {
41075 0 : var power = goog.math.Long.fromNumber(Math.pow(radix, size));
41076 0 : result = result.multiply(power).add(goog.math.Long.fromNumber(value));
41077 0 : } else {
41078 0 : result = result.multiply(radixToPower);
41079 0 : result = result.add(goog.math.Long.fromNumber(value));
41080 0 : }
41081 0 : }
41082 0 : return result;
41083 1 : };
41084 1 :
41085 1 :
41086 1 : // NOTE: the compiler should inline these constant values below and then remove
41087 1 : // these variables, so there should be no runtime penalty for these.
41088 1 :
41089 1 :
41090 1 : /**
41091 1 : * Number used repeated below in calculations. This must appear before the
41092 1 : * first call to any from* function below.
41093 1 : * @type {number}
41094 1 : * @private
41095 1 : */
41096 1 : goog.math.Long.TWO_PWR_16_DBL_ = 1 << 16;
41097 1 :
41098 1 :
41099 1 : /**
41100 1 : * @type {number}
41101 1 : * @private
41102 1 : */
41103 1 : goog.math.Long.TWO_PWR_24_DBL_ = 1 << 24;
41104 1 :
41105 1 :
41106 1 : /**
41107 1 : * @type {number}
41108 1 : * @private
41109 1 : */
41110 1 : goog.math.Long.TWO_PWR_32_DBL_ =
41111 1 : goog.math.Long.TWO_PWR_16_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
41112 1 :
41113 1 :
41114 1 : /**
41115 1 : * @type {number}
41116 1 : * @private
41117 1 : */
41118 1 : goog.math.Long.TWO_PWR_31_DBL_ =
41119 1 : goog.math.Long.TWO_PWR_32_DBL_ / 2;
41120 1 :
41121 1 :
41122 1 : /**
41123 1 : * @type {number}
41124 1 : * @private
41125 1 : */
41126 1 : goog.math.Long.TWO_PWR_48_DBL_ =
41127 1 : goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_16_DBL_;
41128 1 :
41129 1 :
41130 1 : /**
41131 1 : * @type {number}
41132 1 : * @private
41133 1 : */
41134 1 : goog.math.Long.TWO_PWR_64_DBL_ =
41135 1 : goog.math.Long.TWO_PWR_32_DBL_ * goog.math.Long.TWO_PWR_32_DBL_;
41136 1 :
41137 1 :
41138 1 : /**
41139 1 : * @type {number}
41140 1 : * @private
41141 1 : */
41142 1 : goog.math.Long.TWO_PWR_63_DBL_ =
41143 1 : goog.math.Long.TWO_PWR_64_DBL_ / 2;
41144 1 :
41145 1 :
41146 1 : /** @type {!goog.math.Long} */
41147 1 : goog.math.Long.ZERO = goog.math.Long.fromInt(0);
41148 1 :
41149 1 :
41150 1 : /** @type {!goog.math.Long} */
41151 1 : goog.math.Long.ONE = goog.math.Long.fromInt(1);
41152 1 :
41153 1 :
41154 1 : /** @type {!goog.math.Long} */
41155 1 : goog.math.Long.NEG_ONE = goog.math.Long.fromInt(-1);
41156 1 :
41157 1 :
41158 1 : /** @type {!goog.math.Long} */
41159 1 : goog.math.Long.MAX_VALUE =
41160 1 : goog.math.Long.fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0);
41161 1 :
41162 1 :
41163 1 : /** @type {!goog.math.Long} */
41164 1 : goog.math.Long.MIN_VALUE = goog.math.Long.fromBits(0, 0x80000000 | 0);
41165 1 :
41166 1 :
41167 1 : /**
41168 1 : * @type {!goog.math.Long}
41169 1 : * @private
41170 1 : */
41171 1 : goog.math.Long.TWO_PWR_24_ = goog.math.Long.fromInt(1 << 24);
41172 1 :
41173 1 :
41174 1 : /** @return {number} The value, assuming it is a 32-bit integer. */
41175 1 : goog.math.Long.prototype.toInt = function() {
41176 0 : return this.low_;
41177 1 : };
41178 1 :
41179 1 :
41180 1 : /** @return {number} The closest floating-point representation to this value. */
41181 1 : goog.math.Long.prototype.toNumber = function() {
41182 0 : return this.high_ * goog.math.Long.TWO_PWR_32_DBL_ +
41183 0 : this.getLowBitsUnsigned();
41184 1 : };
41185 1 :
41186 1 :
41187 1 : /**
41188 1 : * @param {number=} opt_radix The radix in which the text should be written.
41189 1 : * @return {string} The textual representation of this value.
41190 1 : */
41191 1 : goog.math.Long.prototype.toString = function(opt_radix) {
41192 0 : var radix = opt_radix || 10;
41193 0 : if (radix < 2 || 36 < radix) {
41194 0 : throw Error('radix out of range: ' + radix);
41195 0 : }
41196 0 :
41197 0 : if (this.isZero()) {
41198 0 : return '0';
41199 0 : }
41200 0 :
41201 0 : if (this.isNegative()) {
41202 0 : if (this.equals(goog.math.Long.MIN_VALUE)) {
41203 0 : // We need to change the Long value before it can be negated, so we remove
41204 0 : // the bottom-most digit in this base and then recurse to do the rest.
41205 0 : var radixLong = goog.math.Long.fromNumber(radix);
41206 0 : var div = this.div(radixLong);
41207 0 : var rem = div.multiply(radixLong).subtract(this);
41208 0 : return div.toString(radix) + rem.toInt().toString(radix);
41209 0 : } else {
41210 0 : return '-' + this.negate().toString(radix);
41211 0 : }
41212 0 : }
41213 0 :
41214 0 : // Do several (6) digits each time through the loop, so as to
41215 0 : // minimize the calls to the very expensive emulated div.
41216 0 : var radixToPower = goog.math.Long.fromNumber(Math.pow(radix, 6));
41217 0 :
41218 0 : var rem = this;
41219 0 : var result = '';
41220 0 : while (true) {
41221 0 : var remDiv = rem.div(radixToPower);
41222 0 : var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
41223 0 : var digits = intval.toString(radix);
41224 0 :
41225 0 : rem = remDiv;
41226 0 : if (rem.isZero()) {
41227 0 : return digits + result;
41228 0 : } else {
41229 0 : while (digits.length < 6) {
41230 0 : digits = '0' + digits;
41231 0 : }
41232 0 : result = '' + digits + result;
41233 0 : }
41234 0 : }
41235 1 : };
41236 1 :
41237 1 :
41238 1 : /** @return {number} The high 32-bits as a signed value. */
41239 1 : goog.math.Long.prototype.getHighBits = function() {
41240 0 : return this.high_;
41241 1 : };
41242 1 :
41243 1 :
41244 1 : /** @return {number} The low 32-bits as a signed value. */
41245 1 : goog.math.Long.prototype.getLowBits = function() {
41246 0 : return this.low_;
41247 1 : };
41248 1 :
41249 1 :
41250 1 : /** @return {number} The low 32-bits as an unsigned value. */
41251 1 : goog.math.Long.prototype.getLowBitsUnsigned = function() {
41252 0 : return (this.low_ >= 0) ?
41253 0 : this.low_ : goog.math.Long.TWO_PWR_32_DBL_ + this.low_;
41254 1 : };
41255 1 :
41256 1 :
41257 1 : /**
41258 1 : * @return {number} Returns the number of bits needed to represent the absolute
41259 1 : * value of this Long.
41260 1 : */
41261 1 : goog.math.Long.prototype.getNumBitsAbs = function() {
41262 0 : if (this.isNegative()) {
41263 0 : if (this.equals(goog.math.Long.MIN_VALUE)) {
41264 0 : return 64;
41265 0 : } else {
41266 0 : return this.negate().getNumBitsAbs();
41267 0 : }
41268 0 : } else {
41269 0 : var val = this.high_ != 0 ? this.high_ : this.low_;
41270 0 : for (var bit = 31; bit > 0; bit--) {
41271 0 : if ((val & (1 << bit)) != 0) {
41272 0 : break;
41273 0 : }
41274 0 : }
41275 0 : return this.high_ != 0 ? bit + 33 : bit + 1;
41276 0 : }
41277 1 : };
41278 1 :
41279 1 :
41280 1 : /** @return {boolean} Whether this value is zero. */
41281 1 : goog.math.Long.prototype.isZero = function() {
41282 0 : return this.high_ == 0 && this.low_ == 0;
41283 1 : };
41284 1 :
41285 1 :
41286 1 : /** @return {boolean} Whether this value is negative. */
41287 1 : goog.math.Long.prototype.isNegative = function() {
41288 0 : return this.high_ < 0;
41289 1 : };
41290 1 :
41291 1 :
41292 1 : /** @return {boolean} Whether this value is odd. */
41293 1 : goog.math.Long.prototype.isOdd = function() {
41294 0 : return (this.low_ & 1) == 1;
41295 1 : };
41296 1 :
41297 1 :
41298 1 : /**
41299 1 : * @param {goog.math.Long} other Long to compare against.
41300 1 : * @return {boolean} Whether this Long equals the other.
41301 1 : */
41302 1 : goog.math.Long.prototype.equals = function(other) {
41303 0 : return (this.high_ == other.high_) && (this.low_ == other.low_);
41304 1 : };
41305 1 :
41306 1 :
41307 1 : /**
41308 1 : * @param {goog.math.Long} other Long to compare against.
41309 1 : * @return {boolean} Whether this Long does not equal the other.
41310 1 : */
41311 1 : goog.math.Long.prototype.notEquals = function(other) {
41312 0 : return (this.high_ != other.high_) || (this.low_ != other.low_);
41313 1 : };
41314 1 :
41315 1 :
41316 1 : /**
41317 1 : * @param {goog.math.Long} other Long to compare against.
41318 1 : * @return {boolean} Whether this Long is less than the other.
41319 1 : */
41320 1 : goog.math.Long.prototype.lessThan = function(other) {
41321 0 : return this.compare(other) < 0;
41322 1 : };
41323 1 :
41324 1 :
41325 1 : /**
41326 1 : * @param {goog.math.Long} other Long to compare against.
41327 1 : * @return {boolean} Whether this Long is less than or equal to the other.
41328 1 : */
41329 1 : goog.math.Long.prototype.lessThanOrEqual = function(other) {
41330 0 : return this.compare(other) <= 0;
41331 1 : };
41332 1 :
41333 1 :
41334 1 : /**
41335 1 : * @param {goog.math.Long} other Long to compare against.
41336 1 : * @return {boolean} Whether this Long is greater than the other.
41337 1 : */
41338 1 : goog.math.Long.prototype.greaterThan = function(other) {
41339 0 : return this.compare(other) > 0;
41340 1 : };
41341 1 :
41342 1 :
41343 1 : /**
41344 1 : * @param {goog.math.Long} other Long to compare against.
41345 1 : * @return {boolean} Whether this Long is greater than or equal to the other.
41346 1 : */
41347 1 : goog.math.Long.prototype.greaterThanOrEqual = function(other) {
41348 0 : return this.compare(other) >= 0;
41349 1 : };
41350 1 :
41351 1 :
41352 1 : /**
41353 1 : * Compares this Long with the given one.
41354 1 : * @param {goog.math.Long} other Long to compare against.
41355 1 : * @return {number} 0 if they are the same, 1 if the this is greater, and -1
41356 1 : * if the given one is greater.
41357 1 : */
41358 1 : goog.math.Long.prototype.compare = function(other) {
41359 0 : if (this.equals(other)) {
41360 0 : return 0;
41361 0 : }
41362 0 :
41363 0 : var thisNeg = this.isNegative();
41364 0 : var otherNeg = other.isNegative();
41365 0 : if (thisNeg && !otherNeg) {
41366 0 : return -1;
41367 0 : }
41368 0 : if (!thisNeg && otherNeg) {
41369 0 : return 1;
41370 0 : }
41371 0 :
41372 0 : // at this point, the signs are the same, so subtraction will not overflow
41373 0 : if (this.subtract(other).isNegative()) {
41374 0 : return -1;
41375 0 : } else {
41376 0 : return 1;
41377 0 : }
41378 1 : };
41379 1 :
41380 1 :
41381 1 : /** @return {!goog.math.Long} The negation of this value. */
41382 1 : goog.math.Long.prototype.negate = function() {
41383 0 : if (this.equals(goog.math.Long.MIN_VALUE)) {
41384 0 : return goog.math.Long.MIN_VALUE;
41385 0 : } else {
41386 0 : return this.not().add(goog.math.Long.ONE);
41387 0 : }
41388 1 : };
41389 1 :
41390 1 :
41391 1 : /**
41392 1 : * Returns the sum of this and the given Long.
41393 1 : * @param {goog.math.Long} other Long to add to this one.
41394 1 : * @return {!goog.math.Long} The sum of this and the given Long.
41395 1 : */
41396 1 : goog.math.Long.prototype.add = function(other) {
41397 0 : // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
41398 0 :
41399 0 : var a48 = this.high_ >>> 16;
41400 0 : var a32 = this.high_ & 0xFFFF;
41401 0 : var a16 = this.low_ >>> 16;
41402 0 : var a00 = this.low_ & 0xFFFF;
41403 0 :
41404 0 : var b48 = other.high_ >>> 16;
41405 0 : var b32 = other.high_ & 0xFFFF;
41406 0 : var b16 = other.low_ >>> 16;
41407 0 : var b00 = other.low_ & 0xFFFF;
41408 0 :
41409 0 : var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
41410 0 : c00 += a00 + b00;
41411 0 : c16 += c00 >>> 16;
41412 0 : c00 &= 0xFFFF;
41413 0 : c16 += a16 + b16;
41414 0 : c32 += c16 >>> 16;
41415 0 : c16 &= 0xFFFF;
41416 0 : c32 += a32 + b32;
41417 0 : c48 += c32 >>> 16;
41418 0 : c32 &= 0xFFFF;
41419 0 : c48 += a48 + b48;
41420 0 : c48 &= 0xFFFF;
41421 0 : return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
41422 1 : };
41423 1 :
41424 1 :
41425 1 : /**
41426 1 : * Returns the difference of this and the given Long.
41427 1 : * @param {goog.math.Long} other Long to subtract from this.
41428 1 : * @return {!goog.math.Long} The difference of this and the given Long.
41429 1 : */
41430 1 : goog.math.Long.prototype.subtract = function(other) {
41431 0 : return this.add(other.negate());
41432 1 : };
41433 1 :
41434 1 :
41435 1 : /**
41436 1 : * Returns the product of this and the given long.
41437 1 : * @param {goog.math.Long} other Long to multiply with this.
41438 1 : * @return {!goog.math.Long} The product of this and the other.
41439 1 : */
41440 1 : goog.math.Long.prototype.multiply = function(other) {
41441 0 : if (this.isZero()) {
41442 0 : return goog.math.Long.ZERO;
41443 0 : } else if (other.isZero()) {
41444 0 : return goog.math.Long.ZERO;
41445 0 : }
41446 0 :
41447 0 : if (this.equals(goog.math.Long.MIN_VALUE)) {
41448 0 : return other.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
41449 0 : } else if (other.equals(goog.math.Long.MIN_VALUE)) {
41450 0 : return this.isOdd() ? goog.math.Long.MIN_VALUE : goog.math.Long.ZERO;
41451 0 : }
41452 0 :
41453 0 : if (this.isNegative()) {
41454 0 : if (other.isNegative()) {
41455 0 : return this.negate().multiply(other.negate());
41456 0 : } else {
41457 0 : return this.negate().multiply(other).negate();
41458 0 : }
41459 0 : } else if (other.isNegative()) {
41460 0 : return this.multiply(other.negate()).negate();
41461 0 : }
41462 0 :
41463 0 : // If both longs are small, use float multiplication
41464 0 : if (this.lessThan(goog.math.Long.TWO_PWR_24_) &&
41465 0 : other.lessThan(goog.math.Long.TWO_PWR_24_)) {
41466 0 : return goog.math.Long.fromNumber(this.toNumber() * other.toNumber());
41467 0 : }
41468 0 :
41469 0 : // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
41470 0 : // We can skip products that would overflow.
41471 0 :
41472 0 : var a48 = this.high_ >>> 16;
41473 0 : var a32 = this.high_ & 0xFFFF;
41474 0 : var a16 = this.low_ >>> 16;
41475 0 : var a00 = this.low_ & 0xFFFF;
41476 0 :
41477 0 : var b48 = other.high_ >>> 16;
41478 0 : var b32 = other.high_ & 0xFFFF;
41479 0 : var b16 = other.low_ >>> 16;
41480 0 : var b00 = other.low_ & 0xFFFF;
41481 0 :
41482 0 : var c48 = 0, c32 = 0, c16 = 0, c00 = 0;
41483 0 : c00 += a00 * b00;
41484 0 : c16 += c00 >>> 16;
41485 0 : c00 &= 0xFFFF;
41486 0 : c16 += a16 * b00;
41487 0 : c32 += c16 >>> 16;
41488 0 : c16 &= 0xFFFF;
41489 0 : c16 += a00 * b16;
41490 0 : c32 += c16 >>> 16;
41491 0 : c16 &= 0xFFFF;
41492 0 : c32 += a32 * b00;
41493 0 : c48 += c32 >>> 16;
41494 0 : c32 &= 0xFFFF;
41495 0 : c32 += a16 * b16;
41496 0 : c48 += c32 >>> 16;
41497 0 : c32 &= 0xFFFF;
41498 0 : c32 += a00 * b32;
41499 0 : c48 += c32 >>> 16;
41500 0 : c32 &= 0xFFFF;
41501 0 : c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
41502 0 : c48 &= 0xFFFF;
41503 0 : return goog.math.Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
41504 1 : };
41505 1 :
41506 1 :
41507 1 : /**
41508 1 : * Returns this Long divided by the given one.
41509 1 : * @param {goog.math.Long} other Long by which to divide.
41510 1 : * @return {!goog.math.Long} This Long divided by the given one.
41511 1 : */
41512 1 : goog.math.Long.prototype.div = function(other) {
41513 0 : if (other.isZero()) {
41514 0 : throw Error('division by zero');
41515 0 : } else if (this.isZero()) {
41516 0 : return goog.math.Long.ZERO;
41517 0 : }
41518 0 :
41519 0 : if (this.equals(goog.math.Long.MIN_VALUE)) {
41520 0 : if (other.equals(goog.math.Long.ONE) ||
41521 0 : other.equals(goog.math.Long.NEG_ONE)) {
41522 0 : return goog.math.Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
41523 0 : } else if (other.equals(goog.math.Long.MIN_VALUE)) {
41524 0 : return goog.math.Long.ONE;
41525 0 : } else {
41526 0 : // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
41527 0 : var halfThis = this.shiftRight(1);
41528 0 : var approx = halfThis.div(other).shiftLeft(1);
41529 0 : if (approx.equals(goog.math.Long.ZERO)) {
41530 0 : return other.isNegative() ? goog.math.Long.ONE : goog.math.Long.NEG_ONE;
41531 0 : } else {
41532 0 : var rem = this.subtract(other.multiply(approx));
41533 0 : var result = approx.add(rem.div(other));
41534 0 : return result;
41535 0 : }
41536 0 : }
41537 0 : } else if (other.equals(goog.math.Long.MIN_VALUE)) {
41538 0 : return goog.math.Long.ZERO;
41539 0 : }
41540 0 :
41541 0 : if (this.isNegative()) {
41542 0 : if (other.isNegative()) {
41543 0 : return this.negate().div(other.negate());
41544 0 : } else {
41545 0 : return this.negate().div(other).negate();
41546 0 : }
41547 0 : } else if (other.isNegative()) {
41548 0 : return this.div(other.negate()).negate();
41549 0 : }
41550 0 :
41551 0 : // Repeat the following until the remainder is less than other: find a
41552 0 : // floating-point that approximates remainder / other *from below*, add this
41553 0 : // into the result, and subtract it from the remainder. It is critical that
41554 0 : // the approximate value is less than or equal to the real value so that the
41555 0 : // remainder never becomes negative.
41556 0 : var res = goog.math.Long.ZERO;
41557 0 : var rem = this;
41558 0 : while (rem.greaterThanOrEqual(other)) {
41559 0 : // Approximate the result of division. This may be a little greater or
41560 0 : // smaller than the actual value.
41561 0 : var approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
41562 0 :
41563 0 : // We will tweak the approximate result by changing it in the 48-th digit or
41564 0 : // the smallest non-fractional digit, whichever is larger.
41565 0 : var log2 = Math.ceil(Math.log(approx) / Math.LN2);
41566 0 : var delta = (log2 <= 48) ? 1 : Math.pow(2, log2 - 48);
41567 0 :
41568 0 : // Decrease the approximation until it is smaller than the remainder. Note
41569 0 : // that if it is too large, the product overflows and is negative.
41570 0 : var approxRes = goog.math.Long.fromNumber(approx);
41571 0 : var approxRem = approxRes.multiply(other);
41572 0 : while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
41573 0 : approx -= delta;
41574 0 : approxRes = goog.math.Long.fromNumber(approx);
41575 0 : approxRem = approxRes.multiply(other);
41576 0 : }
41577 0 :
41578 0 : // We know the answer can't be zero... and actually, zero would cause
41579 0 : // infinite recursion since we would make no progress.
41580 0 : if (approxRes.isZero()) {
41581 0 : approxRes = goog.math.Long.ONE;
41582 0 : }
41583 0 :
41584 0 : res = res.add(approxRes);
41585 0 : rem = rem.subtract(approxRem);
41586 0 : }
41587 0 : return res;
41588 1 : };
41589 1 :
41590 1 :
41591 1 : /**
41592 1 : * Returns this Long modulo the given one.
41593 1 : * @param {goog.math.Long} other Long by which to mod.
41594 1 : * @return {!goog.math.Long} This Long modulo the given one.
41595 1 : */
41596 1 : goog.math.Long.prototype.modulo = function(other) {
41597 0 : return this.subtract(this.div(other).multiply(other));
41598 1 : };
41599 1 :
41600 1 :
41601 1 : /** @return {!goog.math.Long} The bitwise-NOT of this value. */
41602 1 : goog.math.Long.prototype.not = function() {
41603 0 : return goog.math.Long.fromBits(~this.low_, ~this.high_);
41604 1 : };
41605 1 :
41606 1 :
41607 1 : /**
41608 1 : * Returns the bitwise-AND of this Long and the given one.
41609 1 : * @param {goog.math.Long} other The Long with which to AND.
41610 1 : * @return {!goog.math.Long} The bitwise-AND of this and the other.
41611 1 : */
41612 1 : goog.math.Long.prototype.and = function(other) {
41613 0 : return goog.math.Long.fromBits(this.low_ & other.low_,
41614 0 : this.high_ & other.high_);
41615 1 : };
41616 1 :
41617 1 :
41618 1 : /**
41619 1 : * Returns the bitwise-OR of this Long and the given one.
41620 1 : * @param {goog.math.Long} other The Long with which to OR.
41621 1 : * @return {!goog.math.Long} The bitwise-OR of this and the other.
41622 1 : */
41623 1 : goog.math.Long.prototype.or = function(other) {
41624 0 : return goog.math.Long.fromBits(this.low_ | other.low_,
41625 0 : this.high_ | other.high_);
41626 1 : };
41627 1 :
41628 1 :
41629 1 : /**
41630 1 : * Returns the bitwise-XOR of this Long and the given one.
41631 1 : * @param {goog.math.Long} other The Long with which to XOR.
41632 1 : * @return {!goog.math.Long} The bitwise-XOR of this and the other.
41633 1 : */
41634 1 : goog.math.Long.prototype.xor = function(other) {
41635 0 : return goog.math.Long.fromBits(this.low_ ^ other.low_,
41636 0 : this.high_ ^ other.high_);
41637 1 : };
41638 1 :
41639 1 :
41640 1 : /**
41641 1 : * Returns this Long with bits shifted to the left by the given amount.
41642 1 : * @param {number} numBits The number of bits by which to shift.
41643 1 : * @return {!goog.math.Long} This shifted to the left by the given amount.
41644 1 : */
41645 1 : goog.math.Long.prototype.shiftLeft = function(numBits) {
41646 0 : numBits &= 63;
41647 0 : if (numBits == 0) {
41648 0 : return this;
41649 0 : } else {
41650 0 : var low = this.low_;
41651 0 : if (numBits < 32) {
41652 0 : var high = this.high_;
41653 0 : return goog.math.Long.fromBits(
41654 0 : low << numBits,
41655 0 : (high << numBits) | (low >>> (32 - numBits)));
41656 0 : } else {
41657 0 : return goog.math.Long.fromBits(0, low << (numBits - 32));
41658 0 : }
41659 0 : }
41660 1 : };
41661 1 :
41662 1 :
41663 1 : /**
41664 1 : * Returns this Long with bits shifted to the right by the given amount.
41665 1 : * @param {number} numBits The number of bits by which to shift.
41666 1 : * @return {!goog.math.Long} This shifted to the right by the given amount.
41667 1 : */
41668 1 : goog.math.Long.prototype.shiftRight = function(numBits) {
41669 0 : numBits &= 63;
41670 0 : if (numBits == 0) {
41671 0 : return this;
41672 0 : } else {
41673 0 : var high = this.high_;
41674 0 : if (numBits < 32) {
41675 0 : var low = this.low_;
41676 0 : return goog.math.Long.fromBits(
41677 0 : (low >>> numBits) | (high << (32 - numBits)),
41678 0 : high >> numBits);
41679 0 : } else {
41680 0 : return goog.math.Long.fromBits(
41681 0 : high >> (numBits - 32),
41682 0 : high >= 0 ? 0 : -1);
41683 0 : }
41684 0 : }
41685 1 : };
41686 1 :
41687 1 :
41688 1 : /**
41689 1 : * Returns this Long with bits shifted to the right by the given amount, with
41690 1 : * the new top bits matching the current sign bit.
41691 1 : * @param {number} numBits The number of bits by which to shift.
41692 1 : * @return {!goog.math.Long} This shifted to the right by the given amount, with
41693 1 : * zeros placed into the new leading bits.
41694 1 : */
41695 1 : goog.math.Long.prototype.shiftRightUnsigned = function(numBits) {
41696 0 : numBits &= 63;
41697 0 : if (numBits == 0) {
41698 0 : return this;
41699 0 : } else {
41700 0 : var high = this.high_;
41701 0 : if (numBits < 32) {
41702 0 : var low = this.low_;
41703 0 : return goog.math.Long.fromBits(
41704 0 : (low >>> numBits) | (high << (32 - numBits)),
41705 0 : high >>> numBits);
41706 0 : } else if (numBits == 32) {
41707 0 : return goog.math.Long.fromBits(high, 0);
41708 0 : } else {
41709 0 : return goog.math.Long.fromBits(high >>> (numBits - 32), 0);
41710 0 : }
41711 0 : }
41712 1 : };
41713 1 :
41714 1 : //======= begin jsbn =======
41715 1 :
41716 1 : var navigator = { appName: 'Modern Browser' }; // polyfill a little
41717 1 :
41718 1 : // Copyright (c) 2005 Tom Wu
41719 1 : // All Rights Reserved.
41720 1 : // http://www-cs-students.stanford.edu/~tjw/jsbn/
41721 1 :
41722 1 : /*
41723 1 : * Copyright (c) 2003-2005 Tom Wu
41724 1 : * All Rights Reserved.
41725 1 : *
41726 1 : * Permission is hereby granted, free of charge, to any person obtaining
41727 1 : * a copy of this software and associated documentation files (the
41728 1 : * "Software"), to deal in the Software without restriction, including
41729 1 : * without limitation the rights to use, copy, modify, merge, publish,
41730 1 : * distribute, sublicense, and/or sell copies of the Software, and to
41731 1 : * permit persons to whom the Software is furnished to do so, subject to
41732 1 : * the following conditions:
41733 1 : *
41734 1 : * The above copyright notice and this permission notice shall be
41735 1 : * included in all copies or substantial portions of the Software.
41736 1 : *
41737 1 : * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
41738 1 : * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
41739 1 : * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
41740 1 : *
41741 1 : * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
41742 1 : * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
41743 1 : * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
41744 1 : * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
41745 1 : * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
41746 1 : *
41747 1 : * In addition, the following condition applies:
41748 1 : *
41749 1 : * All redistributions must retain an intact copy of this copyright notice
41750 1 : * and disclaimer.
41751 1 : */
41752 1 :
41753 1 : // Basic JavaScript BN library - subset useful for RSA encryption.
41754 1 :
41755 1 : // Bits per digit
41756 1 : var dbits;
41757 1 :
41758 1 : // JavaScript engine analysis
41759 1 : var canary = 0xdeadbeefcafe;
41760 1 : var j_lm = ((canary&0xffffff)==0xefcafe);
41761 1 :
41762 1 : // (public) Constructor
41763 2 : function BigInteger(a,b,c) {
41764 2 : if(a != null)
41765 2 : if("number" == typeof a) this.fromNumber(a,b,c);
41766 2 : else if(b == null && "string" != typeof a) this.fromString(a,256);
41767 2 : else this.fromString(a,b);
41768 2 : }
41769 1 :
41770 1 : // return new, unset BigInteger
41771 2 : function nbi() { return new BigInteger(null); }
41772 1 :
41773 1 : // am: Compute w_j += (x*this_i), propagate carries,
41774 1 : // c is initial carry, returns final carry.
41775 1 : // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
41776 1 : // We need to select the fastest one that works in this environment.
41777 1 :
41778 1 : // am1: use a single mult and divide to get the high bits,
41779 1 : // max digit bits should be 26 because
41780 1 : // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
41781 1 : function am1(i,x,w,j,c,n) {
41782 0 : while(--n >= 0) {
41783 0 : var v = x*this[i++]+w[j]+c;
41784 0 : c = Math.floor(v/0x4000000);
41785 0 : w[j++] = v&0x3ffffff;
41786 0 : }
41787 0 : return c;
41788 1 : }
41789 1 : // am2 avoids a big mult-and-extract completely.
41790 1 : // Max digit bits should be <= 30 because we do bitwise ops
41791 1 : // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
41792 1 : function am2(i,x,w,j,c,n) {
41793 0 : var xl = x&0x7fff, xh = x>>15;
41794 0 : while(--n >= 0) {
41795 0 : var l = this[i]&0x7fff;
41796 0 : var h = this[i++]>>15;
41797 0 : var m = xh*l+h*xl;
41798 0 : l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
41799 0 : c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
41800 0 : w[j++] = l&0x3fffffff;
41801 0 : }
41802 0 : return c;
41803 1 : }
41804 1 : // Alternately, set max digit bits to 28 since some
41805 1 : // browsers slow down when dealing with 32-bit numbers.
41806 1 : function am3(i,x,w,j,c,n) {
41807 0 : var xl = x&0x3fff, xh = x>>14;
41808 0 : while(--n >= 0) {
41809 0 : var l = this[i]&0x3fff;
41810 0 : var h = this[i++]>>14;
41811 0 : var m = xh*l+h*xl;
41812 0 : l = xl*l+((m&0x3fff)<<14)+w[j]+c;
41813 0 : c = (l>>28)+(m>>14)+xh*h;
41814 0 : w[j++] = l&0xfffffff;
41815 0 : }
41816 0 : return c;
41817 1 : }
41818 1 : if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
41819 1 : BigInteger.prototype.am = am2;
41820 1 : dbits = 30;
41821 1 : }
41822 1 : else if(j_lm && (navigator.appName != "Netscape")) {
41823 1 : BigInteger.prototype.am = am1;
41824 1 : dbits = 26;
41825 1 : }
41826 1 : else { // Mozilla/Netscape seems to prefer am3
41827 1 : BigInteger.prototype.am = am3;
41828 1 : dbits = 28;
41829 1 : }
41830 1 :
41831 1 : BigInteger.prototype.DB = dbits;
41832 1 : BigInteger.prototype.DM = ((1<<dbits)-1);
41833 1 : BigInteger.prototype.DV = (1<<dbits);
41834 1 :
41835 1 : var BI_FP = 52;
41836 1 : BigInteger.prototype.FV = Math.pow(2,BI_FP);
41837 1 : BigInteger.prototype.F1 = BI_FP-dbits;
41838 1 : BigInteger.prototype.F2 = 2*dbits-BI_FP;
41839 1 :
41840 1 : // Digit conversions
41841 1 : var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
41842 1 : var BI_RC = new Array();
41843 1 : var rr,vv;
41844 1 : rr = "0".charCodeAt(0);
41845 1 : for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
41846 1 : rr = "a".charCodeAt(0);
41847 1 : for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
41848 1 : rr = "A".charCodeAt(0);
41849 1 : for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
41850 1 :
41851 1 : function int2char(n) { return BI_RM.charAt(n); }
41852 1 : function intAt(s,i) {
41853 0 : var c = BI_RC[s.charCodeAt(i)];
41854 0 : return (c==null)?-1:c;
41855 1 : }
41856 1 :
41857 1 : // (protected) copy this to r
41858 1 : function bnpCopyTo(r) {
41859 0 : for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
41860 0 : r.t = this.t;
41861 0 : r.s = this.s;
41862 1 : }
41863 1 :
41864 1 : // (protected) set from integer value x, -DV <= x < DV
41865 2 : function bnpFromInt(x) {
41866 2 : this.t = 1;
41867 2 : this.s = (x<0)?-1:0;
41868 2 : if(x > 0) this[0] = x;
41869 2 : else if(x < -1) this[0] = x+DV;
41870 2 : else this.t = 0;
41871 2 : }
41872 1 :
41873 1 : // return bigint initialized to value
41874 2 : function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
41875 1 :
41876 1 : // (protected) set from string and radix
41877 1 : function bnpFromString(s,b) {
41878 0 : var k;
41879 0 : if(b == 16) k = 4;
41880 0 : else if(b == 8) k = 3;
41881 0 : else if(b == 256) k = 8; // byte array
41882 0 : else if(b == 2) k = 1;
41883 0 : else if(b == 32) k = 5;
41884 0 : else if(b == 4) k = 2;
41885 0 : else { this.fromRadix(s,b); return; }
41886 0 : this.t = 0;
41887 0 : this.s = 0;
41888 0 : var i = s.length, mi = false, sh = 0;
41889 0 : while(--i >= 0) {
41890 0 : var x = (k==8)?s[i]&0xff:intAt(s,i);
41891 0 : if(x < 0) {
41892 0 : if(s.charAt(i) == "-") mi = true;
41893 0 : continue;
41894 0 : }
41895 0 : mi = false;
41896 0 : if(sh == 0)
41897 0 : this[this.t++] = x;
41898 0 : else if(sh+k > this.DB) {
41899 0 : this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
41900 0 : this[this.t++] = (x>>(this.DB-sh));
41901 0 : }
41902 0 : else
41903 0 : this[this.t-1] |= x<<sh;
41904 0 : sh += k;
41905 0 : if(sh >= this.DB) sh -= this.DB;
41906 0 : }
41907 0 : if(k == 8 && (s[0]&0x80) != 0) {
41908 0 : this.s = -1;
41909 0 : if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
41910 0 : }
41911 0 : this.clamp();
41912 0 : if(mi) BigInteger.ZERO.subTo(this,this);
41913 1 : }
41914 1 :
41915 1 : // (protected) clamp off excess high words
41916 1 : function bnpClamp() {
41917 0 : var c = this.s&this.DM;
41918 0 : while(this.t > 0 && this[this.t-1] == c) --this.t;
41919 1 : }
41920 1 :
41921 1 : // (public) return string representation in given radix
41922 1 : function bnToString(b) {
41923 0 : if(this.s < 0) return "-"+this.negate().toString(b);
41924 0 : var k;
41925 0 : if(b == 16) k = 4;
41926 0 : else if(b == 8) k = 3;
41927 0 : else if(b == 2) k = 1;
41928 0 : else if(b == 32) k = 5;
41929 0 : else if(b == 4) k = 2;
41930 0 : else return this.toRadix(b);
41931 0 : var km = (1<<k)-1, d, m = false, r = "", i = this.t;
41932 0 : var p = this.DB-(i*this.DB)%k;
41933 0 : if(i-- > 0) {
41934 0 : if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
41935 0 : while(i >= 0) {
41936 0 : if(p < k) {
41937 0 : d = (this[i]&((1<<p)-1))<<(k-p);
41938 0 : d |= this[--i]>>(p+=this.DB-k);
41939 0 : }
41940 0 : else {
41941 0 : d = (this[i]>>(p-=k))&km;
41942 0 : if(p <= 0) { p += this.DB; --i; }
41943 0 : }
41944 0 : if(d > 0) m = true;
41945 0 : if(m) r += int2char(d);
41946 0 : }
41947 0 : }
41948 0 : return m?r:"0";
41949 1 : }
41950 1 :
41951 1 : // (public) -this
41952 1 : function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
41953 1 :
41954 1 : // (public) |this|
41955 1 : function bnAbs() { return (this.s<0)?this.negate():this; }
41956 1 :
41957 1 : // (public) return + if this > a, - if this < a, 0 if equal
41958 1 : function bnCompareTo(a) {
41959 0 : var r = this.s-a.s;
41960 0 : if(r != 0) return r;
41961 0 : var i = this.t;
41962 0 : r = i-a.t;
41963 0 : if(r != 0) return (this.s<0)?-r:r;
41964 0 : while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
41965 0 : return 0;
41966 1 : }
41967 1 :
41968 1 : // returns bit length of the integer x
41969 1 : function nbits(x) {
41970 0 : var r = 1, t;
41971 0 : if((t=x>>>16) != 0) { x = t; r += 16; }
41972 0 : if((t=x>>8) != 0) { x = t; r += 8; }
41973 0 : if((t=x>>4) != 0) { x = t; r += 4; }
41974 0 : if((t=x>>2) != 0) { x = t; r += 2; }
41975 0 : if((t=x>>1) != 0) { x = t; r += 1; }
41976 0 : return r;
41977 1 : }
41978 1 :
41979 1 : // (public) return the number of bits in "this"
41980 1 : function bnBitLength() {
41981 0 : if(this.t <= 0) return 0;
41982 0 : return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
41983 1 : }
41984 1 :
41985 1 : // (protected) r = this << n*DB
41986 1 : function bnpDLShiftTo(n,r) {
41987 0 : var i;
41988 0 : for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
41989 0 : for(i = n-1; i >= 0; --i) r[i] = 0;
41990 0 : r.t = this.t+n;
41991 0 : r.s = this.s;
41992 1 : }
41993 1 :
41994 1 : // (protected) r = this >> n*DB
41995 1 : function bnpDRShiftTo(n,r) {
41996 0 : for(var i = n; i < this.t; ++i) r[i-n] = this[i];
41997 0 : r.t = Math.max(this.t-n,0);
41998 0 : r.s = this.s;
41999 1 : }
42000 1 :
42001 1 : // (protected) r = this << n
42002 1 : function bnpLShiftTo(n,r) {
42003 0 : var bs = n%this.DB;
42004 0 : var cbs = this.DB-bs;
42005 0 : var bm = (1<<cbs)-1;
42006 0 : var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
42007 0 : for(i = this.t-1; i >= 0; --i) {
42008 0 : r[i+ds+1] = (this[i]>>cbs)|c;
42009 0 : c = (this[i]&bm)<<bs;
42010 0 : }
42011 0 : for(i = ds-1; i >= 0; --i) r[i] = 0;
42012 0 : r[ds] = c;
42013 0 : r.t = this.t+ds+1;
42014 0 : r.s = this.s;
42015 0 : r.clamp();
42016 1 : }
42017 1 :
42018 1 : // (protected) r = this >> n
42019 1 : function bnpRShiftTo(n,r) {
42020 0 : r.s = this.s;
42021 0 : var ds = Math.floor(n/this.DB);
42022 0 : if(ds >= this.t) { r.t = 0; return; }
42023 0 : var bs = n%this.DB;
42024 0 : var cbs = this.DB-bs;
42025 0 : var bm = (1<<bs)-1;
42026 0 : r[0] = this[ds]>>bs;
42027 0 : for(var i = ds+1; i < this.t; ++i) {
42028 0 : r[i-ds-1] |= (this[i]&bm)<<cbs;
42029 0 : r[i-ds] = this[i]>>bs;
42030 0 : }
42031 0 : if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
42032 0 : r.t = this.t-ds;
42033 0 : r.clamp();
42034 1 : }
42035 1 :
42036 1 : // (protected) r = this - a
42037 1 : function bnpSubTo(a,r) {
42038 0 : var i = 0, c = 0, m = Math.min(a.t,this.t);
42039 0 : while(i < m) {
42040 0 : c += this[i]-a[i];
42041 0 : r[i++] = c&this.DM;
42042 0 : c >>= this.DB;
42043 0 : }
42044 0 : if(a.t < this.t) {
42045 0 : c -= a.s;
42046 0 : while(i < this.t) {
42047 0 : c += this[i];
42048 0 : r[i++] = c&this.DM;
42049 0 : c >>= this.DB;
42050 0 : }
42051 0 : c += this.s;
42052 0 : }
42053 0 : else {
42054 0 : c += this.s;
42055 0 : while(i < a.t) {
42056 0 : c -= a[i];
42057 0 : r[i++] = c&this.DM;
42058 0 : c >>= this.DB;
42059 0 : }
42060 0 : c -= a.s;
42061 0 : }
42062 0 : r.s = (c<0)?-1:0;
42063 0 : if(c < -1) r[i++] = this.DV+c;
42064 0 : else if(c > 0) r[i++] = c;
42065 0 : r.t = i;
42066 0 : r.clamp();
42067 1 : }
42068 1 :
42069 1 : // (protected) r = this * a, r != this,a (HAC 14.12)
42070 1 : // "this" should be the larger one if appropriate.
42071 1 : function bnpMultiplyTo(a,r) {
42072 0 : var x = this.abs(), y = a.abs();
42073 0 : var i = x.t;
42074 0 : r.t = i+y.t;
42075 0 : while(--i >= 0) r[i] = 0;
42076 0 : for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
42077 0 : r.s = 0;
42078 0 : r.clamp();
42079 0 : if(this.s != a.s) BigInteger.ZERO.subTo(r,r);
42080 1 : }
42081 1 :
42082 1 : // (protected) r = this^2, r != this (HAC 14.16)
42083 1 : function bnpSquareTo(r) {
42084 0 : var x = this.abs();
42085 0 : var i = r.t = 2*x.t;
42086 0 : while(--i >= 0) r[i] = 0;
42087 0 : for(i = 0; i < x.t-1; ++i) {
42088 0 : var c = x.am(i,x[i],r,2*i,0,1);
42089 0 : if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
42090 0 : r[i+x.t] -= x.DV;
42091 0 : r[i+x.t+1] = 1;
42092 0 : }
42093 0 : }
42094 0 : if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
42095 0 : r.s = 0;
42096 0 : r.clamp();
42097 1 : }
42098 1 :
42099 1 : // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
42100 1 : // r != q, this != m. q or r may be null.
42101 1 : function bnpDivRemTo(m,q,r) {
42102 0 : var pm = m.abs();
42103 0 : if(pm.t <= 0) return;
42104 0 : var pt = this.abs();
42105 0 : if(pt.t < pm.t) {
42106 0 : if(q != null) q.fromInt(0);
42107 0 : if(r != null) this.copyTo(r);
42108 0 : return;
42109 0 : }
42110 0 : if(r == null) r = nbi();
42111 0 : var y = nbi(), ts = this.s, ms = m.s;
42112 0 : var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
42113 0 : if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
42114 0 : else { pm.copyTo(y); pt.copyTo(r); }
42115 0 : var ys = y.t;
42116 0 : var y0 = y[ys-1];
42117 0 : if(y0 == 0) return;
42118 0 : var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
42119 0 : var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
42120 0 : var i = r.t, j = i-ys, t = (q==null)?nbi():q;
42121 0 : y.dlShiftTo(j,t);
42122 0 : if(r.compareTo(t) >= 0) {
42123 0 : r[r.t++] = 1;
42124 0 : r.subTo(t,r);
42125 0 : }
42126 0 : BigInteger.ONE.dlShiftTo(ys,t);
42127 0 : t.subTo(y,y); // "negative" y so we can replace sub with am later
42128 0 : while(y.t < ys) y[y.t++] = 0;
42129 0 : while(--j >= 0) {
42130 0 : // Estimate quotient digit
42131 0 : var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
42132 0 : if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
42133 0 : y.dlShiftTo(j,t);
42134 0 : r.subTo(t,r);
42135 0 : while(r[i] < --qd) r.subTo(t,r);
42136 0 : }
42137 0 : }
42138 0 : if(q != null) {
42139 0 : r.drShiftTo(ys,q);
42140 0 : if(ts != ms) BigInteger.ZERO.subTo(q,q);
42141 0 : }
42142 0 : r.t = ys;
42143 0 : r.clamp();
42144 0 : if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
42145 0 : if(ts < 0) BigInteger.ZERO.subTo(r,r);
42146 1 : }
42147 1 :
42148 1 : // (public) this mod a
42149 1 : function bnMod(a) {
42150 0 : var r = nbi();
42151 0 : this.abs().divRemTo(a,null,r);
42152 0 : if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);
42153 0 : return r;
42154 1 : }
42155 1 :
42156 1 : // Modular reduction using "classic" algorithm
42157 1 : function Classic(m) { this.m = m; }
42158 1 : function cConvert(x) {
42159 0 : if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
42160 0 : else return x;
42161 1 : }
42162 1 : function cRevert(x) { return x; }
42163 1 : function cReduce(x) { x.divRemTo(this.m,null,x); }
42164 1 : function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
42165 1 : function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
42166 1 :
42167 1 : Classic.prototype.convert = cConvert;
42168 1 : Classic.prototype.revert = cRevert;
42169 1 : Classic.prototype.reduce = cReduce;
42170 1 : Classic.prototype.mulTo = cMulTo;
42171 1 : Classic.prototype.sqrTo = cSqrTo;
42172 1 :
42173 1 : // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
42174 1 : // justification:
42175 1 : // xy == 1 (mod m)
42176 1 : // xy = 1+km
42177 1 : // xy(2-xy) = (1+km)(1-km)
42178 1 : // x[y(2-xy)] = 1-k^2m^2
42179 1 : // x[y(2-xy)] == 1 (mod m^2)
42180 1 : // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
42181 1 : // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
42182 1 : // JS multiply "overflows" differently from C/C++, so care is needed here.
42183 1 : function bnpInvDigit() {
42184 0 : if(this.t < 1) return 0;
42185 0 : var x = this[0];
42186 0 : if((x&1) == 0) return 0;
42187 0 : var y = x&3; // y == 1/x mod 2^2
42188 0 : y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
42189 0 : y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
42190 0 : y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
42191 0 : // last step - calculate inverse mod DV directly;
42192 0 : // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
42193 0 : y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
42194 0 : // we really want the negative inverse, and -DV < y < DV
42195 0 : return (y>0)?this.DV-y:-y;
42196 1 : }
42197 1 :
42198 1 : // Montgomery reduction
42199 1 : function Montgomery(m) {
42200 0 : this.m = m;
42201 0 : this.mp = m.invDigit();
42202 0 : this.mpl = this.mp&0x7fff;
42203 0 : this.mph = this.mp>>15;
42204 0 : this.um = (1<<(m.DB-15))-1;
42205 0 : this.mt2 = 2*m.t;
42206 1 : }
42207 1 :
42208 1 : // xR mod m
42209 1 : function montConvert(x) {
42210 0 : var r = nbi();
42211 0 : x.abs().dlShiftTo(this.m.t,r);
42212 0 : r.divRemTo(this.m,null,r);
42213 0 : if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);
42214 0 : return r;
42215 1 : }
42216 1 :
42217 1 : // x/R mod m
42218 1 : function montRevert(x) {
42219 0 : var r = nbi();
42220 0 : x.copyTo(r);
42221 0 : this.reduce(r);
42222 0 : return r;
42223 1 : }
42224 1 :
42225 1 : // x = x/R mod m (HAC 14.32)
42226 1 : function montReduce(x) {
42227 0 : while(x.t <= this.mt2) // pad x so am has enough room later
42228 0 : x[x.t++] = 0;
42229 0 : for(var i = 0; i < this.m.t; ++i) {
42230 0 : // faster way of calculating u0 = x[i]*mp mod DV
42231 0 : var j = x[i]&0x7fff;
42232 0 : var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
42233 0 : // use am to combine the multiply-shift-add into one call
42234 0 : j = i+this.m.t;
42235 0 : x[j] += this.m.am(0,u0,x,i,0,this.m.t);
42236 0 : // propagate carry
42237 0 : while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
42238 0 : }
42239 0 : x.clamp();
42240 0 : x.drShiftTo(this.m.t,x);
42241 0 : if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
42242 1 : }
42243 1 :
42244 1 : // r = "x^2/R mod m"; x != r
42245 1 : function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
42246 1 :
42247 1 : // r = "xy/R mod m"; x,y != r
42248 1 : function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
42249 1 :
42250 1 : Montgomery.prototype.convert = montConvert;
42251 1 : Montgomery.prototype.revert = montRevert;
42252 1 : Montgomery.prototype.reduce = montReduce;
42253 1 : Montgomery.prototype.mulTo = montMulTo;
42254 1 : Montgomery.prototype.sqrTo = montSqrTo;
42255 1 :
42256 1 : // (protected) true iff this is even
42257 1 : function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
42258 1 :
42259 1 : // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
42260 1 : function bnpExp(e,z) {
42261 0 : if(e > 0xffffffff || e < 1) return BigInteger.ONE;
42262 0 : var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
42263 0 : g.copyTo(r);
42264 0 : while(--i >= 0) {
42265 0 : z.sqrTo(r,r2);
42266 0 : if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
42267 0 : else { var t = r; r = r2; r2 = t; }
42268 0 : }
42269 0 : return z.revert(r);
42270 1 : }
42271 1 :
42272 1 : // (public) this^e % m, 0 <= e < 2^32
42273 1 : function bnModPowInt(e,m) {
42274 0 : var z;
42275 0 : if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
42276 0 : return this.exp(e,z);
42277 1 : }
42278 1 :
42279 1 : // protected
42280 1 : BigInteger.prototype.copyTo = bnpCopyTo;
42281 1 : BigInteger.prototype.fromInt = bnpFromInt;
42282 1 : BigInteger.prototype.fromString = bnpFromString;
42283 1 : BigInteger.prototype.clamp = bnpClamp;
42284 1 : BigInteger.prototype.dlShiftTo = bnpDLShiftTo;
42285 1 : BigInteger.prototype.drShiftTo = bnpDRShiftTo;
42286 1 : BigInteger.prototype.lShiftTo = bnpLShiftTo;
42287 1 : BigInteger.prototype.rShiftTo = bnpRShiftTo;
42288 1 : BigInteger.prototype.subTo = bnpSubTo;
42289 1 : BigInteger.prototype.multiplyTo = bnpMultiplyTo;
42290 1 : BigInteger.prototype.squareTo = bnpSquareTo;
42291 1 : BigInteger.prototype.divRemTo = bnpDivRemTo;
42292 1 : BigInteger.prototype.invDigit = bnpInvDigit;
42293 1 : BigInteger.prototype.isEven = bnpIsEven;
42294 1 : BigInteger.prototype.exp = bnpExp;
42295 1 :
42296 1 : // public
42297 1 : BigInteger.prototype.toString = bnToString;
42298 1 : BigInteger.prototype.negate = bnNegate;
42299 1 : BigInteger.prototype.abs = bnAbs;
42300 1 : BigInteger.prototype.compareTo = bnCompareTo;
42301 1 : BigInteger.prototype.bitLength = bnBitLength;
42302 1 : BigInteger.prototype.mod = bnMod;
42303 1 : BigInteger.prototype.modPowInt = bnModPowInt;
42304 1 :
42305 1 : // "constants"
42306 1 : BigInteger.ZERO = nbv(0);
42307 1 : BigInteger.ONE = nbv(1);
42308 1 :
42309 1 : // jsbn2 stuff
42310 1 :
42311 1 : // (protected) convert from radix string
42312 1 : function bnpFromRadix(s,b) {
42313 0 : this.fromInt(0);
42314 0 : if(b == null) b = 10;
42315 0 : var cs = this.chunkSize(b);
42316 0 : var d = Math.pow(b,cs), mi = false, j = 0, w = 0;
42317 0 : for(var i = 0; i < s.length; ++i) {
42318 0 : var x = intAt(s,i);
42319 0 : if(x < 0) {
42320 0 : if(s.charAt(i) == "-" && this.signum() == 0) mi = true;
42321 0 : continue;
42322 0 : }
42323 0 : w = b*w+x;
42324 0 : if(++j >= cs) {
42325 0 : this.dMultiply(d);
42326 0 : this.dAddOffset(w,0);
42327 0 : j = 0;
42328 0 : w = 0;
42329 0 : }
42330 0 : }
42331 0 : if(j > 0) {
42332 0 : this.dMultiply(Math.pow(b,j));
42333 0 : this.dAddOffset(w,0);
42334 0 : }
42335 0 : if(mi) BigInteger.ZERO.subTo(this,this);
42336 1 : }
42337 1 :
42338 1 : // (protected) return x s.t. r^x < DV
42339 1 : function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }
42340 1 :
42341 1 : // (public) 0 if this == 0, 1 if this > 0
42342 1 : function bnSigNum() {
42343 0 : if(this.s < 0) return -1;
42344 0 : else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;
42345 0 : else return 1;
42346 1 : }
42347 1 :
42348 1 : // (protected) this *= n, this >= 0, 1 < n < DV
42349 1 : function bnpDMultiply(n) {
42350 0 : this[this.t] = this.am(0,n-1,this,0,0,this.t);
42351 0 : ++this.t;
42352 0 : this.clamp();
42353 1 : }
42354 1 :
42355 1 : // (protected) this += n << w words, this >= 0
42356 1 : function bnpDAddOffset(n,w) {
42357 0 : if(n == 0) return;
42358 0 : while(this.t <= w) this[this.t++] = 0;
42359 0 : this[w] += n;
42360 0 : while(this[w] >= this.DV) {
42361 0 : this[w] -= this.DV;
42362 0 : if(++w >= this.t) this[this.t++] = 0;
42363 0 : ++this[w];
42364 0 : }
42365 1 : }
42366 1 :
42367 1 : // (protected) convert to radix string
42368 1 : function bnpToRadix(b) {
42369 0 : if(b == null) b = 10;
42370 0 : if(this.signum() == 0 || b < 2 || b > 36) return "0";
42371 0 : var cs = this.chunkSize(b);
42372 0 : var a = Math.pow(b,cs);
42373 0 : var d = nbv(a), y = nbi(), z = nbi(), r = "";
42374 0 : this.divRemTo(d,y,z);
42375 0 : while(y.signum() > 0) {
42376 0 : r = (a+z.intValue()).toString(b).substr(1) + r;
42377 0 : y.divRemTo(d,y,z);
42378 0 : }
42379 0 : return z.intValue().toString(b) + r;
42380 1 : }
42381 1 :
42382 1 : // (public) return value as integer
42383 1 : function bnIntValue() {
42384 0 : if(this.s < 0) {
42385 0 : if(this.t == 1) return this[0]-this.DV;
42386 0 : else if(this.t == 0) return -1;
42387 0 : }
42388 0 : else if(this.t == 1) return this[0];
42389 0 : else if(this.t == 0) return 0;
42390 0 : // assumes 16 < DB < 32
42391 0 : return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];
42392 1 : }
42393 1 :
42394 1 : // (protected) r = this + a
42395 1 : function bnpAddTo(a,r) {
42396 0 : var i = 0, c = 0, m = Math.min(a.t,this.t);
42397 0 : while(i < m) {
42398 0 : c += this[i]+a[i];
42399 0 : r[i++] = c&this.DM;
42400 0 : c >>= this.DB;
42401 0 : }
42402 0 : if(a.t < this.t) {
42403 0 : c += a.s;
42404 0 : while(i < this.t) {
42405 0 : c += this[i];
42406 0 : r[i++] = c&this.DM;
42407 0 : c >>= this.DB;
42408 0 : }
42409 0 : c += this.s;
42410 0 : }
42411 0 : else {
42412 0 : c += this.s;
42413 0 : while(i < a.t) {
42414 0 : c += a[i];
42415 0 : r[i++] = c&this.DM;
42416 0 : c >>= this.DB;
42417 0 : }
42418 0 : c += a.s;
42419 0 : }
42420 0 : r.s = (c<0)?-1:0;
42421 0 : if(c > 0) r[i++] = c;
42422 0 : else if(c < -1) r[i++] = this.DV+c;
42423 0 : r.t = i;
42424 0 : r.clamp();
42425 1 : }
42426 1 :
42427 1 : BigInteger.prototype.fromRadix = bnpFromRadix;
42428 1 : BigInteger.prototype.chunkSize = bnpChunkSize;
42429 1 : BigInteger.prototype.signum = bnSigNum;
42430 1 : BigInteger.prototype.dMultiply = bnpDMultiply;
42431 1 : BigInteger.prototype.dAddOffset = bnpDAddOffset;
42432 1 : BigInteger.prototype.toRadix = bnpToRadix;
42433 1 : BigInteger.prototype.intValue = bnIntValue;
42434 1 : BigInteger.prototype.addTo = bnpAddTo;
42435 1 :
42436 1 : //======= end jsbn =======
42437 1 :
42438 1 : // Emscripten wrapper
42439 1 : var Wrapper = {
42440 1 : abs: function(l, h) {
42441 0 : var x = new goog.math.Long(l, h);
42442 0 : var ret;
42443 0 : if (x.isNegative()) {
42444 0 : ret = x.negate();
42445 0 : } else {
42446 0 : ret = x;
42447 0 : }
42448 0 : HEAP32[tempDoublePtr>>2] = ret.low_;
42449 0 : HEAP32[tempDoublePtr+4>>2] = ret.high_;
42450 1 : },
42451 1 : ensureTemps: function() {
42452 0 : if (Wrapper.ensuredTemps) return;
42453 0 : Wrapper.ensuredTemps = true;
42454 0 : Wrapper.two32 = new BigInteger();
42455 0 : Wrapper.two32.fromString('4294967296', 10);
42456 0 : Wrapper.two64 = new BigInteger();
42457 0 : Wrapper.two64.fromString('18446744073709551616', 10);
42458 0 : Wrapper.temp1 = new BigInteger();
42459 0 : Wrapper.temp2 = new BigInteger();
42460 1 : },
42461 1 : lh2bignum: function(l, h) {
42462 0 : var a = new BigInteger();
42463 0 : a.fromString(h.toString(), 10);
42464 0 : var b = new BigInteger();
42465 0 : a.multiplyTo(Wrapper.two32, b);
42466 0 : var c = new BigInteger();
42467 0 : c.fromString(l.toString(), 10);
42468 0 : var d = new BigInteger();
42469 0 : c.addTo(b, d);
42470 0 : return d;
42471 1 : },
42472 1 : stringify: function(l, h, unsigned) {
42473 0 : var ret = new goog.math.Long(l, h).toString();
42474 0 : if (unsigned && ret[0] == '-') {
42475 0 : // unsign slowly using jsbn bignums
42476 0 : Wrapper.ensureTemps();
42477 0 : var bignum = new BigInteger();
42478 0 : bignum.fromString(ret, 10);
42479 0 : ret = new BigInteger();
42480 0 : Wrapper.two64.addTo(bignum, ret);
42481 0 : ret = ret.toString(10);
42482 0 : }
42483 0 : return ret;
42484 1 : },
42485 1 : fromString: function(str, base, min, max, unsigned) {
42486 0 : Wrapper.ensureTemps();
42487 0 : var bignum = new BigInteger();
42488 0 : bignum.fromString(str, base);
42489 0 : var bigmin = new BigInteger();
42490 0 : bigmin.fromString(min, 10);
42491 0 : var bigmax = new BigInteger();
42492 0 : bigmax.fromString(max, 10);
42493 0 : if (unsigned && bignum.compareTo(BigInteger.ZERO) < 0) {
42494 0 : var temp = new BigInteger();
42495 0 : bignum.addTo(Wrapper.two64, temp);
42496 0 : bignum = temp;
42497 0 : }
42498 0 : var error = false;
42499 0 : if (bignum.compareTo(bigmin) < 0) {
42500 0 : bignum = bigmin;
42501 0 : error = true;
42502 0 : } else if (bignum.compareTo(bigmax) > 0) {
42503 0 : bignum = bigmax;
42504 0 : error = true;
42505 0 : }
42506 0 : var ret = goog.math.Long.fromString(bignum.toString()); // min-max checks should have clamped this to a range goog.math.Long can handle well
42507 0 : HEAP32[tempDoublePtr>>2] = ret.low_;
42508 0 : HEAP32[tempDoublePtr+4>>2] = ret.high_;
42509 0 : if (error) throw 'range error';
42510 1 : }
42511 1 : };
42512 1 : return Wrapper;
42513 1 : })();
42514 1 :
42515 1 : //======= end closure i64 code =======
42516 1 :
42517 1 :
42518 1 :
42519 1 : // === Auto-generated postamble setup entry stuff ===
42520 1 :
42521 1 : if (memoryInitializer) {
42522 1 : if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) {
42523 1 : var data = Module['readBinary'](memoryInitializer);
42524 1 : HEAPU8.set(data, STATIC_BASE);
42525 1 : } else {
42526 1 : addRunDependency('memory initializer');
42527 1 : Browser.asyncLoad(memoryInitializer, function(data) {
42528 0 : HEAPU8.set(data, STATIC_BASE);
42529 0 : removeRunDependency('memory initializer');
42530 1 : }, function(data) {
42531 0 : throw 'could not load memory initializer ' + memoryInitializer;
42532 1 : });
42533 1 : }
42534 1 : }
42535 1 :
42536 1 : function ExitStatus(status) {
42537 1 : this.name = "ExitStatus";
42538 1 : this.message = "Program terminated with exit(" + status + ")";
42539 1 : this.status = status;
42540 1 : };
42541 1 : ExitStatus.prototype = new Error();
42542 1 : ExitStatus.prototype.constructor = ExitStatus;
42543 1 :
42544 1 : var initialStackTop;
42545 1 : var preloadStartTime = null;
42546 1 : var calledMain = false;
42547 1 :
42548 1 : dependenciesFulfilled = function runCaller() {
42549 0 : // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
42550 0 : if (!Module['calledRun'] && shouldRunNow) run(['binarytrees.lua'].concat(Module["arguments"]));
42551 0 : if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
42552 1 : }
42553 1 :
42554 1 : Module['callMain'] = Module.callMain = function callMain(args) {
42555 1 : assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)');
42556 1 : assert(__ATPRERUN__.length == 0, 'cannot call main when preRun functions remain to be called');
42557 1 :
42558 1 : args = args || [];
42559 1 :
42560 1 : ensureInitRuntime();
42561 1 :
42562 1 : var argc = args.length+1;
42563 3 : function pad() {
42564 3 : for (var i = 0; i < 4-1; i++) {
42565 3 : argv.push(0);
42566 3 : }
42567 3 : }
42568 1 : var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_NORMAL) ];
42569 1 : pad();
42570 1 : for (var i = 0; i < argc-1; i = i + 1) {
42571 1 : argv.push(allocate(intArrayFromString(args[i]), 'i8', ALLOC_NORMAL));
42572 1 : pad();
42573 1 : }
42574 1 : argv.push(0);
42575 1 : argv = allocate(argv, 'i32', ALLOC_NORMAL);
42576 1 :
42577 1 : initialStackTop = STACKTOP;
42578 1 :
42579 1 : try {
42580 1 :
42581 1 : var ret = Module['_main'](argc, argv, 0);
42582 1 :
42583 1 :
42584 1 : // if we're not running an evented main loop, it's time to exit
42585 1 : if (!Module['noExitRuntime']) {
42586 1 : exit(ret);
42587 1 : }
42588 1 : }
42589 1 : catch(e) {
42590 1 : if (e instanceof ExitStatus) {
42591 1 : // exit() throws this once it's done to make sure execution
42592 1 : // has been stopped completely
42593 1 : return;
42594 1 : } else if (e == 'SimulateInfiniteLoop') {
42595 1 : // running an evented main loop, don't immediately exit
42596 1 : Module['noExitRuntime'] = true;
42597 1 : return;
42598 1 : } else {
42599 1 : if (e && typeof e === 'object' && e.stack) Module.printErr('exception thrown: ' + [e, e.stack]);
42600 1 : throw e;
42601 1 : }
42602 1 : } finally {
42603 1 : calledMain = true;
42604 1 : }
42605 1 : }
42606 1 :
42607 1 :
42608 1 :
42609 1 :
42610 1 : function run(args) {
42611 1 : args = args || Module['arguments'];
42612 1 :
42613 1 : if (preloadStartTime === null) preloadStartTime = Date.now();
42614 1 :
42615 1 : if (runDependencies > 0) {
42616 1 : Module.printErr('run() called, but dependencies remain, so not running');
42617 1 : return;
42618 1 : }
42619 1 :
42620 1 : preRun();
42621 1 :
42622 1 : if (runDependencies > 0) return; // a preRun added a dependency, run will be called later
42623 1 : if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame
42624 1 :
42625 1 : function doRun() {
42626 1 : if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening
42627 1 : Module['calledRun'] = true;
42628 1 :
42629 1 : ensureInitRuntime();
42630 1 :
42631 1 : preMain();
42632 1 :
42633 1 : if (ENVIRONMENT_IS_WEB && preloadStartTime !== null) {
42634 1 : Module.printErr('pre-main prep time: ' + (Date.now() - preloadStartTime) + ' ms');
42635 1 : }
42636 1 :
42637 1 : if (Module['_main'] && shouldRunNow) {
42638 1 : Module['callMain'](args);
42639 1 : }
42640 1 :
42641 1 : postRun();
42642 1 : }
42643 1 :
42644 1 : if (Module['setStatus']) {
42645 1 : Module['setStatus']('Running...');
42646 1 : setTimeout(function() {
42647 0 : setTimeout(function() {
42648 0 : Module['setStatus']('');
42649 0 : }, 1);
42650 0 : if (!ABORT) doRun();
42651 1 : }, 1);
42652 1 : } else {
42653 1 : doRun();
42654 1 : }
42655 1 : }
42656 1 : Module['run'] = Module.run = run;
42657 1 :
42658 1 : function exit(status) {
42659 1 : ABORT = true;
42660 1 : EXITSTATUS = status;
42661 1 : STACKTOP = initialStackTop;
42662 1 :
42663 1 : // exit the runtime
42664 1 : exitRuntime();
42665 1 :
42666 1 : // TODO We should handle this differently based on environment.
42667 1 : // In the browser, the best we can do is throw an exception
42668 1 : // to halt execution, but in node we could process.exit and
42669 1 : // I'd imagine SM shell would have something equivalent.
42670 1 : // This would let us set a proper exit status (which
42671 1 : // would be great for checking test exit statuses).
42672 1 : // https://github.com/kripken/emscripten/issues/1371
42673 1 :
42674 1 : // throw an exception to halt the current execution
42675 1 : throw new ExitStatus(status);
42676 1 : }
42677 1 : Module['exit'] = Module.exit = exit;
42678 1 :
42679 1 : function abort(text) {
42680 0 : if (text) {
42681 0 : Module.print(text);
42682 0 : Module.printErr(text);
42683 0 : }
42684 0 :
42685 0 : ABORT = true;
42686 0 : EXITSTATUS = 1;
42687 0 :
42688 0 : var extra = '\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.';
42689 0 :
42690 0 : throw 'abort() at ' + stackTrace() + extra;
42691 1 : }
42692 1 : Module['abort'] = Module.abort = abort;
42693 1 :
42694 1 : // {{PRE_RUN_ADDITIONS}}
42695 1 :
42696 1 : if (Module['preInit']) {
42697 1 : if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];
42698 1 : while (Module['preInit'].length > 0) {
42699 1 : Module['preInit'].pop()();
42700 1 : }
42701 1 : }
42702 1 :
42703 1 : // shouldRunNow refers to calling main(), not run().
42704 1 : var shouldRunNow = true;
42705 1 : if (Module['noInitialRun']) {
42706 1 : shouldRunNow = false;
42707 1 : }
42708 1 :
42709 1 :
42710 1 : run(['binarytrees.lua'].concat(Module["arguments"]));
|